Skip to content

Latest commit

 

History

History
500 lines (438 loc) · 83.7 KB

README.md

File metadata and controls

500 lines (438 loc) · 83.7 KB

CI Gitter Quality Gate Status Bugs Maintainability Rating Reliability Rating Security Rating Vulnerabilities Release Release Date Go

Alt text

Go API client for ionoscloud

IMPORTANT NOTE:

The Go SDK v5 is deprecated and no longer maintained. Please upgrade to v6, which uses the latest stable API version.

The Go SDK v5 will reach End of Life by September 30, 2023. After this date, the v5 API will not be accessible. If you require any assistance, please contact our support team.

An enterprise-grade Infrastructure is provided as a Service (IaaS) solution that can be managed through a browser-based "Data Center Designer" (DCD) tool or via an easy-to-use API.

The API allows you to perform a variety of management tasks such as spinning up additional servers, adding volumes, adjusting networking, and so forth. It is designed to allow users to leverage the same power and flexibility found within the DCD visual tool. Both tools are consistent with their concepts and lend well to making the experience smooth and intuitive.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 5.0
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import sw "./ionoscloud"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value sw.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), sw.ContextServerIndex, 1)

Note: To overwrite the API endpoint - api.ionos.com, the environment variable $IONOS_API_URL can be set, and used with NewConfigurationFromEnv() function.

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), sw.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), sw.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), sw.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Environment Variables

Environment Variable Description
IONOS_USERNAME Specify the username used to login, to authenticate against the IONOS Cloud API
IONOS_PASSWORD Specify the password used to login, to authenticate against the IONOS Cloud API
IONOS_TOKEN Specify the token used to login, if a token is being used instead of username and password
IONOS_API_URL Specify the API URL. It will overwrite the API endpoint default value api.ionos.com. Note: the host URL does not contain the /cloudapi/v5 path, so it should not be included in the IONOS_API_URL environment variable

Documentation for API Endpoints

All URIs are relative to https://api.ionos.com/cloudapi/v5

API Endpoints table
Class Method HTTP request Description
DefaultApi ApiInfoGet Get / Display API information
BackupUnitApi BackupunitsDelete Delete /backupunits/{backupunitId} Delete a Backup Unit
BackupUnitApi BackupunitsFindById Get /backupunits/{backupunitId} Returns the specified backup Unit
BackupUnitApi BackupunitsGet Get /backupunits List Backup Units
BackupUnitApi BackupunitsPatch Patch /backupunits/{backupunitId} Partially modify a Backup Unit
BackupUnitApi BackupunitsPost Post /backupunits Create a Backup Unit
BackupUnitApi BackupunitsPut Put /backupunits/{backupunitId} Modify a Backup Unit
BackupUnitApi BackupunitsSsourlGet Get /backupunits/{backupunitId}/ssourl Returns a single signon URL for the specified backup Unit.
ContractApi ContractsGet Get /contracts Retrieve a Contract
DataCenterApi DatacentersDelete Delete /datacenters/{datacenterId} Delete a Data Center
DataCenterApi DatacentersFindById Get /datacenters/{datacenterId} Retrieve a Data Center
DataCenterApi DatacentersGet Get /datacenters List Data Centers under your account
DataCenterApi DatacentersPatch Patch /datacenters/{datacenterId} Partially modify a Data Center
DataCenterApi DatacentersPost Post /datacenters Create a Data Center
DataCenterApi DatacentersPut Put /datacenters/{datacenterId} Modify a Data Center
IPBlocksApi IpblocksDelete Delete /ipblocks/{ipblockId} Delete IP Block
IPBlocksApi IpblocksFindById Get /ipblocks/{ipblockId} Retrieve an IP Block
IPBlocksApi IpblocksGet Get /ipblocks List IP Blocks
IPBlocksApi IpblocksPatch Patch /ipblocks/{ipblockId} Partially modify IP Block
IPBlocksApi IpblocksPost Post /ipblocks Reserve IP Block
IPBlocksApi IpblocksPut Put /ipblocks/{ipblockId} Modify IP Block
ImageApi ImagesDelete Delete /images/{imageId} Delete an Image
ImageApi ImagesFindById Get /images/{imageId} Retrieve an Image
ImageApi ImagesGet Get /images List Images
ImageApi ImagesPatch Patch /images/{imageId} Partially modify an Image
ImageApi ImagesPut Put /images/{imageId} Modify an Image
KubernetesApi K8sDelete Delete /k8s/{k8sClusterId} Delete Kubernetes Cluster
KubernetesApi K8sFindByClusterId Get /k8s/{k8sClusterId} Retrieve Kubernetes Cluster
KubernetesApi K8sGet Get /k8s List Kubernetes Clusters
KubernetesApi K8sKubeconfigGet Get /k8s/{k8sClusterId}/kubeconfig Retrieve Kubernetes Configuration File
KubernetesApi K8sNodepoolsDelete Delete /k8s/{k8sClusterId}/nodepools/{nodepoolId} Delete Kubernetes Node Pool
KubernetesApi K8sNodepoolsFindById Get /k8s/{k8sClusterId}/nodepools/{nodepoolId} Retrieve Kubernetes Node Pool
KubernetesApi K8sNodepoolsGet Get /k8s/{k8sClusterId}/nodepools List Kubernetes Node Pools
KubernetesApi K8sNodepoolsNodesDelete Delete /k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId} Delete Kubernetes node
KubernetesApi K8sNodepoolsNodesFindById Get /k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId} Retrieve Kubernetes node
KubernetesApi K8sNodepoolsNodesGet Get /k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes Retrieve Kubernetes nodes.
KubernetesApi K8sNodepoolsNodesReplacePost Post /k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId}/replace Recreate the Kubernetes node
KubernetesApi K8sNodepoolsPost Post /k8s/{k8sClusterId}/nodepools Create a Kubernetes Node Pool
KubernetesApi K8sNodepoolsPut Put /k8s/{k8sClusterId}/nodepools/{nodepoolId} Modify Kubernetes Node Pool
KubernetesApi K8sPost Post /k8s Create Kubernetes Cluster
KubernetesApi K8sPut Put /k8s/{k8sClusterId} Modify Kubernetes Cluster
KubernetesApi K8sVersionsCompatibilitiesGet Get /k8s/versions/{clusterVersion}/compatibilities Retrieves a list of available kubernetes versions for nodepools depending on the given kubernetes version running in the cluster.
KubernetesApi K8sVersionsDefaultGet Get /k8s/versions/default Retrieve the current default kubernetes version for clusters and nodepools.
KubernetesApi K8sVersionsGet Get /k8s/versions Retrieve available Kubernetes versions
LabelApi DatacentersLabelsDelete Delete /datacenters/{datacenterId}/labels/{key} Delete a Label from Data Center
LabelApi DatacentersLabelsFindByKey Get /datacenters/{datacenterId}/labels/{key} Retrieve a Label of Data Center
LabelApi DatacentersLabelsGet Get /datacenters/{datacenterId}/labels List all Data Center Labels
LabelApi DatacentersLabelsPost Post /datacenters/{datacenterId}/labels Add a Label to Data Center
LabelApi DatacentersLabelsPut Put /datacenters/{datacenterId}/labels/{key} Modify a Label of Data Center
LabelApi DatacentersServersLabelsDelete Delete /datacenters/{datacenterId}/servers/{serverId}/labels/{key} Delete a Label from Server
LabelApi DatacentersServersLabelsFindByKey Get /datacenters/{datacenterId}/servers/{serverId}/labels/{key} Retrieve a Label of Server
LabelApi DatacentersServersLabelsGet Get /datacenters/{datacenterId}/servers/{serverId}/labels List all Server Labels
LabelApi DatacentersServersLabelsPost Post /datacenters/{datacenterId}/servers/{serverId}/labels Add a Label to Server
LabelApi DatacentersServersLabelsPut Put /datacenters/{datacenterId}/servers/{serverId}/labels/{key} Modify a Label of Server
LabelApi DatacentersVolumesLabelsDelete Delete /datacenters/{datacenterId}/volumes/{volumeId}/labels/{key} Delete a Label from Volume
LabelApi DatacentersVolumesLabelsFindByKey Get /datacenters/{datacenterId}/volumes/{volumeId}/labels/{key} Retrieve a Label of Volume
LabelApi DatacentersVolumesLabelsGet Get /datacenters/{datacenterId}/volumes/{volumeId}/labels List all Volume Labels
LabelApi DatacentersVolumesLabelsPost Post /datacenters/{datacenterId}/volumes/{volumeId}/labels Add a Label to Volume
LabelApi DatacentersVolumesLabelsPut Put /datacenters/{datacenterId}/volumes/{volumeId}/labels/{key} Modify a Label of Volume
LabelApi IpblocksLabelsDelete Delete /ipblocks/{ipblockId}/labels/{key} Delete a Label from IP Block
LabelApi IpblocksLabelsFindByKey Get /ipblocks/{ipblockId}/labels/{key} Retrieve a Label of IP Block
LabelApi IpblocksLabelsGet Get /ipblocks/{ipblockId}/labels List all Ip Block Labels
LabelApi IpblocksLabelsPost Post /ipblocks/{ipblockId}/labels Add a Label to IP Block
LabelApi IpblocksLabelsPut Put /ipblocks/{ipblockId}/labels/{key} Modify a Label of IP Block
LabelApi LabelsFindByUrn Get /labels/{labelurn} Returns the label by its URN.
LabelApi LabelsGet Get /labels List Labels
LabelApi SnapshotsLabelsDelete Delete /snapshots/{snapshotId}/labels/{key} Delete a Label from Snapshot
LabelApi SnapshotsLabelsFindByKey Get /snapshots/{snapshotId}/labels/{key} Retrieve a Label of Snapshot
LabelApi SnapshotsLabelsGet Get /snapshots/{snapshotId}/labels List all Snapshot Labels
LabelApi SnapshotsLabelsPost Post /snapshots/{snapshotId}/labels Add a Label to Snapshot
LabelApi SnapshotsLabelsPut Put /snapshots/{snapshotId}/labels/{key} Modify a Label of Snapshot
LanApi DatacentersLansDelete Delete /datacenters/{datacenterId}/lans/{lanId} Delete a Lan.
LanApi DatacentersLansFindById Get /datacenters/{datacenterId}/lans/{lanId} Retrieve a Lan
LanApi DatacentersLansGet Get /datacenters/{datacenterId}/lans List Lans
LanApi DatacentersLansNicsFindById Get /datacenters/{datacenterId}/lans/{lanId}/nics/{nicId} Retrieve a nic attached to lan
LanApi DatacentersLansNicsGet Get /datacenters/{datacenterId}/lans/{lanId}/nics List Lan Members
LanApi DatacentersLansNicsPost Post /datacenters/{datacenterId}/lans/{lanId}/nics Attach a nic
LanApi DatacentersLansPatch Patch /datacenters/{datacenterId}/lans/{lanId} Partially modify a Lan
LanApi DatacentersLansPost Post /datacenters/{datacenterId}/lans Create a Lan
LanApi DatacentersLansPut Put /datacenters/{datacenterId}/lans/{lanId} Modify a Lan
LoadBalancerApi DatacentersLoadbalancersBalancednicsDelete Delete /datacenters/{datacenterId}/loadbalancers/{loadbalancerId}/balancednics/{nicId} Detach a nic from loadbalancer
LoadBalancerApi DatacentersLoadbalancersBalancednicsFindByNicId Get /datacenters/{datacenterId}/loadbalancers/{loadbalancerId}/balancednics/{nicId} Retrieve a nic attached to Load Balancer
LoadBalancerApi DatacentersLoadbalancersBalancednicsGet Get /datacenters/{datacenterId}/loadbalancers/{loadbalancerId}/balancednics List Load Balancer Members
LoadBalancerApi DatacentersLoadbalancersBalancednicsPost Post /datacenters/{datacenterId}/loadbalancers/{loadbalancerId}/balancednics Attach a nic to Load Balancer
LoadBalancerApi DatacentersLoadbalancersDelete Delete /datacenters/{datacenterId}/loadbalancers/{loadbalancerId} Delete a Loadbalancer.
LoadBalancerApi DatacentersLoadbalancersFindById Get /datacenters/{datacenterId}/loadbalancers/{loadbalancerId} Retrieve a loadbalancer
LoadBalancerApi DatacentersLoadbalancersGet Get /datacenters/{datacenterId}/loadbalancers List Load Balancers
LoadBalancerApi DatacentersLoadbalancersPatch Patch /datacenters/{datacenterId}/loadbalancers/{loadbalancerId} Partially modify a Loadbalancer
LoadBalancerApi DatacentersLoadbalancersPost Post /datacenters/{datacenterId}/loadbalancers Create a Load Balancer
LoadBalancerApi DatacentersLoadbalancersPut Put /datacenters/{datacenterId}/loadbalancers/{loadbalancerId} Modify a Load Balancer
LocationApi LocationsFindByRegionId Get /locations/{regionId} List Locations within a region
LocationApi LocationsFindByRegionIdAndId Get /locations/{regionId}/{locationId} Retrieve a Location
LocationApi LocationsGet Get /locations List Locations
NicApi DatacentersServersNicsDelete Delete /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId} Delete a Nic
NicApi DatacentersServersNicsFindById Get /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId} Retrieve a Nic
NicApi DatacentersServersNicsFirewallrulesDelete Delete /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules/{firewallruleId} Delete a Firewall Rule
NicApi DatacentersServersNicsFirewallrulesFindById Get /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules/{firewallruleId} Retrieve a Firewall Rule
NicApi DatacentersServersNicsFirewallrulesGet Get /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules List Firewall Rules
NicApi DatacentersServersNicsFirewallrulesPatch Patch /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules/{firewallruleId} Partially modify a Firewall Rule
NicApi DatacentersServersNicsFirewallrulesPost Post /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules Create a Firewall Rule
NicApi DatacentersServersNicsFirewallrulesPut Put /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId}/firewallrules/{firewallruleId} Modify a Firewall Rule
NicApi DatacentersServersNicsGet Get /datacenters/{datacenterId}/servers/{serverId}/nics List Nics
NicApi DatacentersServersNicsPatch Patch /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId} Partially modify a Nic
NicApi DatacentersServersNicsPost Post /datacenters/{datacenterId}/servers/{serverId}/nics Create a Nic
NicApi DatacentersServersNicsPut Put /datacenters/{datacenterId}/servers/{serverId}/nics/{nicId} Modify a Nic
PrivateCrossConnectApi PccsDelete Delete /pccs/{pccId} Delete a Private Cross-Connect
PrivateCrossConnectApi PccsFindById Get /pccs/{pccId} Retrieve a Private Cross-Connect
PrivateCrossConnectApi PccsGet Get /pccs List Private Cross-Connects
PrivateCrossConnectApi PccsPatch Patch /pccs/{pccId} Partially modify a private cross-connect
PrivateCrossConnectApi PccsPost Post /pccs Create a Private Cross-Connect
RequestApi RequestsFindById Get /requests/{requestId} Retrieve a Request
RequestApi RequestsGet Get /requests List Requests
RequestApi RequestsStatusGet Get /requests/{requestId}/status Retrieve Request Status
ServerApi DatacentersServersCdromsDelete Delete /datacenters/{datacenterId}/servers/{serverId}/cdroms/{cdromId} Detach a CD-ROM
ServerApi DatacentersServersCdromsFindById Get /datacenters/{datacenterId}/servers/{serverId}/cdroms/{cdromId} Retrieve an attached CD-ROM
ServerApi DatacentersServersCdromsGet Get /datacenters/{datacenterId}/servers/{serverId}/cdroms List attached CD-ROMs
ServerApi DatacentersServersCdromsPost Post /datacenters/{datacenterId}/servers/{serverId}/cdroms Attach a CD-ROM
ServerApi DatacentersServersDelete Delete /datacenters/{datacenterId}/servers/{serverId} Delete a Server
ServerApi DatacentersServersFindById Get /datacenters/{datacenterId}/servers/{serverId} Retrieve a Server
ServerApi DatacentersServersGet Get /datacenters/{datacenterId}/servers List Servers
ServerApi DatacentersServersPatch Patch /datacenters/{datacenterId}/servers/{serverId} Partially modify a Server
ServerApi DatacentersServersPost Post /datacenters/{datacenterId}/servers Create a Server
ServerApi DatacentersServersPut Put /datacenters/{datacenterId}/servers/{serverId} Modify a Server
ServerApi DatacentersServersRebootPost Post /datacenters/{datacenterId}/servers/{serverId}/reboot Reboot a Server
ServerApi DatacentersServersStartPost Post /datacenters/{datacenterId}/servers/{serverId}/start Start a Server
ServerApi DatacentersServersStopPost Post /datacenters/{datacenterId}/servers/{serverId}/stop Stop a Server
ServerApi DatacentersServersUpgradePost Post /datacenters/{datacenterId}/servers/{serverId}/upgrade Upgrade a Server
ServerApi DatacentersServersVolumesDelete Delete /datacenters/{datacenterId}/servers/{serverId}/volumes/{volumeId} Detach a volume
ServerApi DatacentersServersVolumesFindById Get /datacenters/{datacenterId}/servers/{serverId}/volumes/{volumeId} Retrieve an attached volume
ServerApi DatacentersServersVolumesGet Get /datacenters/{datacenterId}/servers/{serverId}/volumes List Attached Volumes
ServerApi DatacentersServersVolumesPost Post /datacenters/{datacenterId}/servers/{serverId}/volumes Attach a volume
SnapshotApi SnapshotsDelete Delete /snapshots/{snapshotId} Delete a Snapshot
SnapshotApi SnapshotsFindById Get /snapshots/{snapshotId} Retrieve a Snapshot by its uuid.
SnapshotApi SnapshotsGet Get /snapshots List Snapshots
SnapshotApi SnapshotsPatch Patch /snapshots/{snapshotId} Partially modify a Snapshot
SnapshotApi SnapshotsPut Put /snapshots/{snapshotId} Modify a Snapshot
UserManagementApi UmGroupsDelete Delete /um/groups/{groupId} Delete a Group
UserManagementApi UmGroupsFindById Get /um/groups/{groupId} Retrieve a Group
UserManagementApi UmGroupsGet Get /um/groups List All Groups.
UserManagementApi UmGroupsPost Post /um/groups Create a Group
UserManagementApi UmGroupsPut Put /um/groups/{groupId} Modify a group
UserManagementApi UmGroupsResourcesGet Get /um/groups/{groupId}/resources Retrieve resources assigned to a group
UserManagementApi UmGroupsSharesDelete Delete /um/groups/{groupId}/shares/{resourceId} Remove a resource from a group
UserManagementApi UmGroupsSharesFindByResourceId Get /um/groups/{groupId}/shares/{resourceId} Retrieve a group share
UserManagementApi UmGroupsSharesGet Get /um/groups/{groupId}/shares List Group Shares
UserManagementApi UmGroupsSharesPost Post /um/groups/{groupId}/shares/{resourceId} Add a resource to a group
UserManagementApi UmGroupsSharesPut Put /um/groups/{groupId}/shares/{resourceId} Modify resource permissions of a group
UserManagementApi UmGroupsUsersDelete Delete /um/groups/{groupId}/users/{userId} Remove a user from a group
UserManagementApi UmGroupsUsersGet Get /um/groups/{groupId}/users List Group Members
UserManagementApi UmGroupsUsersPost Post /um/groups/{groupId}/users Add a user to a group
UserManagementApi UmResourcesFindByType Get /um/resources/{resourceType} Retrieve a list of Resources by type.
UserManagementApi UmResourcesFindByTypeAndId Get /um/resources/{resourceType}/{resourceId} Retrieve a Resource by type.
UserManagementApi UmResourcesGet Get /um/resources List All Resources.
UserManagementApi UmUsersDelete Delete /um/users/{userId} Delete a User
UserManagementApi UmUsersFindById Get /um/users/{userId} Retrieve a User
UserManagementApi UmUsersGet Get /um/users List all Users
UserManagementApi UmUsersGroupsGet Get /um/users/{userId}/groups Retrieve a User's group resources
UserManagementApi UmUsersOwnsGet Get /um/users/{userId}/owns Retrieve a User's own resources
UserManagementApi UmUsersPost Post /um/users Create a user
UserManagementApi UmUsersPut Put /um/users/{userId} Modify a user
UserManagementApi UmUsersS3keysDelete Delete /um/users/{userId}/s3keys/{keyId} Delete a S3 key
UserManagementApi UmUsersS3keysFindByKeyId Get /um/users/{userId}/s3keys/{keyId} Retrieve given S3 key belonging to the given User
UserManagementApi UmUsersS3keysGet Get /um/users/{userId}/s3keys Retrieve a User's S3 keys
UserManagementApi UmUsersS3keysPost Post /um/users/{userId}/s3keys Create a S3 key for the given user
UserManagementApi UmUsersS3keysPut Put /um/users/{userId}/s3keys/{keyId} Modify a S3 key having the given key id
UserManagementApi UmUsersS3ssourlGet Get /um/users/{userId}/s3ssourl Retrieve S3 object storage single signon URL for the given user
VolumeApi DatacentersVolumesCreateSnapshotPost Post /datacenters/{datacenterId}/volumes/{volumeId}/create-snapshot Create Volume Snapshot
VolumeApi DatacentersVolumesDelete Delete /datacenters/{datacenterId}/volumes/{volumeId} Delete a Volume
VolumeApi DatacentersVolumesFindById Get /datacenters/{datacenterId}/volumes/{volumeId} Retrieve a Volume
VolumeApi DatacentersVolumesGet Get /datacenters/{datacenterId}/volumes List Volumes
VolumeApi DatacentersVolumesPatch Patch /datacenters/{datacenterId}/volumes/{volumeId} Partially modify a Volume
VolumeApi DatacentersVolumesPost Post /datacenters/{datacenterId}/volumes Create a Volume
VolumeApi DatacentersVolumesPut Put /datacenters/{datacenterId}/volumes/{volumeId} Modify a Volume
VolumeApi DatacentersVolumesRestoreSnapshotPost Post /datacenters/{datacenterId}/volumes/{volumeId}/restore-snapshot Restore Volume Snapshot

Documentation For Models

API models list

Documentation For Authorization

Basic Authentication

  • Type: HTTP basic authentication

Example

auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
    UserName: "username",
    Password: "password",
})
r, err := client.Service.Operation(auth, args)

Token Authentication

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: Authorization and passed in as the auth context for each request.

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Debugging

If you want to see the API call request and response messages, you need to set the Debug field in the Configuration struct:

package main

import "github.com/ionos-cloud/sdk-go/v5"

func main() {
    // create your configuration. replace username, password, token and url with correct values, or use NewConfigurationFromEnv()
    // if you have set your env variables as explained above
    cfg := ionoscloud.NewConfiguration("username", "password", "token", "hostUrl")
    // enable request and response logging
    cfg.Debug = true
    // create you api client with the configuration
    apiClient := ionoscloud.NewAPIClient(cfg)
}

⚠️ Note: We recommend you only set this field for debugging purposes. Disable it in your production environments because it can log sensitive data. It logs the full request and response without encryption, even for an HTTPS call. Verbose request and response logging can also significantly impact your application's performance.

Author