Package: glesys
glesysA Python library to interact with theGlesys.com APIendpoints.It's also a CLI tool to access a subset of all those features as well as housing a LetsEncryptcertbotAuthenticator plugin.Small Disclaimer: I have no affiliation with Glesys, I just appreciate their API and servicesInstallation$ pip install glesysUsage:information_source: This assumes a validglesys.tomlconfiguration.List all domains$ glesys dns --all-domainsList all records for hvornum.se$ glesys dns --all-records hvornum.seLetsEncrypt challenge:warning: This assumes you have installed this library locally on the machine before running thecertbotutility. This is becausecertbotwill use plugin-discovery viaEntry points for plugins. This also requires a validglesys.toml.Single certificate for all domains$ sudo glesys lets-encrypt --all-domainsThis will generate certificates for all domains hosted under the Glesys DNS server. This would be eqivilant of running certbot manually forhvornum.seandarchlinux.life:certbot -v certonly --non-interactive --authenticator dns-glesys --preferred-challenges dns --dry-run --server https://acme-staging-v02.api.letsencrypt.org/directory --work-dir /home/anton/github/python-glesys/certbot --logs-dir /home/anton/github/python-glesys/certbot --config-dir /home/anton/github/python-glesys/certbot --text --agree-tos --email anton@hvornum.se --expand --renew-by-default -d '*.hvornum.se,hvornum.se,*.archlinux.life,archlinux.life'By default it will run against LetsEncrypt staging environment. Use--productionto targetglesys lets-encryptagainst the production endpoint of LetsEncrypt and to remove the dryrun.Separate certificate for all domainsTBD!$ sudo glesys lets-encrypt --all-domains --individualSeparate certificate for selected domainsTBD!$ sudo glesys lets-encrypt --individual --hostname '*.hvornum.se' --hostname 'hvornum.se'Supported API EndpointsAs of 2023-05-03API Doc Spec.https://api.glesys.com/server/listhttps://api.glesys.com/server/detailshttps://api.glesys.com/server/networkadaptershttps://api.glesys.com/server/backuphttps://api.glesys.com/server/statushttps://api.glesys.com/server/reboothttps://api.glesys.com/server/resethttps://api.glesys.com/server/stophttps://api.glesys.com/server/starthttps://api.glesys.com/server/createhttps://api.glesys.com/server/createfrombackuphttps://api.glesys.com/server/createmanualbackuphttps://api.glesys.com/server/deletemanualbackuphttps://api.glesys.com/server/destroyhttps://api.glesys.com/server/edithttps://api.glesys.com/server/clonehttps://api.glesys.com/server/limitshttps://api.glesys.com/server/resetlimithttps://api.glesys.com/server/listbackupshttps://api.glesys.com/server/consolehttps://api.glesys.com/server/resetpasswordhttps://api.glesys.com/server/templateshttps://api.glesys.com/server/allowedargumentshttps://api.glesys.com/server/resourceusagehttps://api.glesys.com/server/costshttps://api.glesys.com/server/listisohttps://api.glesys.com/server/mountisohttps://api.glesys.com/server/estimatedcosthttps://api.glesys.com/server/previewcloudconfighttps://api.glesys.com/ip/listfreehttps://api.glesys.com/ip/listownhttps://api.glesys.com/ip/detailshttps://api.glesys.com/ip/takehttps://api.glesys.com/ip/releasehttps://api.glesys.com/ip/addhttps://api.glesys.com/ip/removehttps://api.glesys.com/ip/setptrhttps://api.glesys.com/ip/resetptrhttps://api.glesys.com/domain/listhttps://api.glesys.com/domain/addhttps://api.glesys.com/domain/registerhttps://api.glesys.com/domain/transferhttps://api.glesys.com/domain/renewhttps://api.glesys.com/domain/setautorenewhttps://api.glesys.com/domain/detailshttps://api.glesys.com/domain/exporthttps://api.glesys.com/domain/availablehttps://api.glesys.com/domain/pricelisthttps://api.glesys.com/domain/edithttps://api.glesys.com/domain/deletehttps://api.glesys.com/domain/updaterecordhttps://api.glesys.com/domain/listrecordshttps://api.glesys.com/domain/addrecordhttps://api.glesys.com/domain/deleterecordhttps://api.glesys.com/domain/allowedargumentshttps://api.glesys.com/domain/changenameservershttps://api.glesys.com/domain/legacywebhostinghttps://api.glesys.com/archive/detailshttps://api.glesys.com/archive/deletehttps://api.glesys.com/archive/listhttps://api.glesys.com/archive/createhttps://api.glesys.com/archive/changepasswordhttps://api.glesys.com/archive/resizehttps://api.glesys.com/archive/changedescriptionhttps://api.glesys.com/archive/allowedargumentshttps://api.glesys.com/email/overviewhttps://api.glesys.com/email/listhttps://api.glesys.com/email/editaccounthttps://api.glesys.com/email/deletehttps://api.glesys.com/email/createaccounthttps://api.glesys.com/email/quotahttps://api.glesys.com/email/createaliashttps://api.glesys.com/email/editaliashttps://api.glesys.com/email/costshttps://api.glesys.com/email/resetpasswordhttps://api.glesys.com/invoice/listhttps://api.glesys.com/invoice/nexthttps://api.glesys.com/invoice/paybypaypalhttps://api.glesys.com/country/listhttps://api.glesys.com/customer/settingshttps://api.glesys.com/customer/listcollaboratorshttps://api.glesys.com/customer/listprojectshttps://api.glesys.com/customer/editcollaboratorhttps://api.glesys.com/customer/removecollaboratorhttps://api.glesys.com/customer/createprojecthttps://api.glesys.com/account/infohttps://api.glesys.com/paymentcard/addhttps://api.glesys.com/vpn/listusershttps://api.glesys.com/vpn/createuserhttps://api.glesys.com/vpn/deleteuserhttps://api.glesys.com/vpn/edituserhttps://api.glesys.com/loadbalancer/listhttps://api.glesys.com/loadbalancer/detailshttps://api.glesys.com/loadbalancer/createhttps://api.glesys.com/loadbalancer/edithttps://api.glesys.com/loadbalancer/destroyhttps://api.glesys.com/loadbalancer/addfrontendhttps://api.glesys.com/loadbalancer/editfrontendhttps://api.glesys.com/loadbalancer/removefrontendhttps://api.glesys.com/loadbalancer/addbackendhttps://api.glesys.com/loadbalancer/editbackendhttps://api.glesys.com/loadbalancer/removebackendhttps://api.glesys.com/loadbalancer/addtargethttps://api.glesys.com/loadbalancer/edittargethttps://api.glesys.com/loadbalancer/enabletargethttps://api.glesys.com/loadbalancer/disabletargethttps://api.glesys.com/loadbalancer/removetargethttps://api.glesys.com/loadbalancer/addcertificatehttps://api.glesys.com/loadbalancer/listcertificatehttps://api.glesys.com/loadbalancer/removecertificatehttps://api.glesys.com/loadbalancer/errorshttps://api.glesys.com/loadbalancer/addtoblocklisthttps://api.glesys.com/loadbalancer/removefromblocklisthttps://api.glesys.com/user/createorganizationhttps://api.glesys.com/user/detailshttps://api.glesys.com/user/edithttps://api.glesys.com/user/loginhttps://api.glesys.com/user/logouthttps://api.glesys.com/user/enabletwofactorhttps://api.glesys.com/user/disabletwofactorhttps://api.glesys.com/user/changepasswordhttps://api.glesys.com/user/listorganizationshttps://api.glesys.com/user/searchdatahttps://api.glesys.com/user/signuphttps://api.glesys.com/user/supportchallengehttps://api.glesys.com/user/initiatesupportchallengehttps://api.glesys.com/user/confirmhttps://api.glesys.com/api/maintenancehttps://api.glesys.com/api/serviceinfohttps://api.glesys.com/api/listfunctionshttps://api.glesys.com/sshkey/addhttps://api.glesys.com/sshkey/listhttps://api.glesys.com/sshkey/removehttps://api.glesys.com/networkadapter/createhttps://api.glesys.com/networkadapter/detailshttps://api.glesys.com/networkadapter/edithttps://api.glesys.com/networkadapter/deletehttps://api.glesys.com/network/listhttps://api.glesys.com/network/detailshttps://api.glesys.com/network/createhttps://api.glesys.com/network/deletehttps://api.glesys.com/network/edithttps://api.glesys.com/filestorage/createvolumehttps://api.glesys.com/filestorage/listvolumeshttps://api.glesys.com/filestorage/volumedetailshttps://api.glesys.com/filestorage/editvolumehttps://api.glesys.com/filestorage/deletevolumehttps://api.glesys.com/filestorage/resourceusagehttps://api.glesys.com/filestorage/listplanshttps://api.glesys.com/project/edithttps://api.glesys.com/project/renamehttps://api.glesys.com/project/deletehttps://api.glesys.com/objectstorage/instancedetailshttps://api.glesys.com/objectstorage/listinstanceshttps://api.glesys.com/objectstorage/createinstancehttps://api.glesys.com/objectstorage/editinstancehttps://api.glesys.com/objectstorage/deleteinstancehttps://api.glesys.com/objectstorage/createcredentialhttps://api.glesys.com/objectstorage/deletecredentialhttps://api.glesys.com/objectstorage/estimatedcost