jelix / gandi-v5
Library and cli script to use the Gandi API V5
v1.0.0
2023-11-15 14:38 UTC
Requires
- php: ^7.2.5 || ^8.0
- guzzlehttp/guzzle: ^7.8.0
- symfony/console: ^4.4.0 || ^5.2.8 || ^6.3.8
This package is auto-updated.
Last update: 2024-08-15 16:08:15 UTC
README
Library and command line to use the Gandi V5 API.
This library is not developed or maintained by Gandi.
Using CLI commands
Requirements
Minimum version of PHP is 7.2.5.
Api key
To use the Gandi API, you should retrieve an API key from your account, in the security section.
You can store it into several place:
- in a file
.gandi-apikey
in the same directory of thegandi
script - in a file
.gandi-apikey
in your home directory - in any file, if you set the environment variable
GANDI_APIKEY_FILE
with the full path to the file.
Usage
Use the gandi
script to execute command.
# show global help and list all commands
./gandi
# a simple command to get the status of Gandi
./gandi status
Using the library in your code
You should first create a Jelix\GandiApi\Configuration
object, with the API key:
<?php use Jelix\GandiApi\Configuration; $configuration = new Configuration('my api key');
Then give this object to all classes that use the Gandi API v5.
Example:
<?php // List of organizations use Jelix\GandiApi\ApiV5\Organizations; $organizations = new Organizations($configuration); $list = $organizations->getList(); foreach($list as $organization) { echo $organization->getName() . ", " . $organization->getType(). ", ".$organization->getId() . "\n" ; } // Create a zone Record use Jelix\GandiApi\ApiV5\LiveDns\ZoneRecord; $apiLiveDns = new \Jelix\GandiApi\ApiV5\LiveDns($configuration); $record = new ZoneRecord( 'myrecordname', // name 'A', // type ['127.0.0.1'], // values 10800 // ttl ); $message = $apiLiveDns->createRecord('my.domain', $record);
Supported API
- get Gandi Status (no api key is needed)
- list of organizations
- retrieve an organization by name
- LiveDNS: domains list
- LiveDNS: records list
- LiveDNS: create/update/delete a record into a zone
Feel free to help us to implement other API ;-)