Provider and connection APIs
This section includes all provider and connection related APIs with examples.
- Accessing APIs
- Retrieve the list of providers
- Create a cloud connection
- Retrieve the list of cloud connections
- Retrieve a specific cloud connection
- Update a specific cloud connection
- Delete a specific cloud connection
Accessing APIs
To get an access token to your API calls and authenticate your credentials, see Accessing APIs.
Retrieve the list of providers
Retrieve the list of providers.
curl -k -X GET \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"https://${TSA_HOSTNAME}/cam/api/v1/providers?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}"
Example response:
[
{
"configuration_parameters": [],
"connection_parameters": [
{
"name": "ibmcloud_api_key",
"type": "password",
"description": "The API key for IBM Cloud",
"required": "true",
"secured": "true",
"label": "IBM Cloud API Key",
"value": ""
},
{
"name": "iaas_classic_username",
"type": "string",
"description": "The User Name for IBM Cloud Classic Infrastructure",
"required": "true",
"secured": "false",
"label": "IBM Cloud Classic Infrastructure User Name",
},
{
"name": "iaas_classic_api_key",
"type": "password",
"description": "The API key for IBM Cloud Classic Infrastructure",
"required": "true",
"secured": "true",
"label": "IBM Cloud Classic Infrastructure API Key",
"value": ""
}
],
"name": "IBM",
"description": "IBM Provider",
"datatype_identifier": "IBM",
"id": "5c588624df7d9e00187628c7",
"label": "IBM"
},
...
Create a cloud connection
POST to create a cloud connection.
curl -k -X POST \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d @cc_create.json \
"https://${TSA_HOSTNAME}/cam/api/v1/cloudconnections?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}&cloudOE_spaceGuid=${NAMESPACE}"
cc_create.json
{
"name": "AWSTestConnection",
"description": "My AWS Test Connection",
"connection_parameters": [
{
"name": "aws_access_key_id",
"type": "string",
"description": "The API Access Key ID for AWS generated in the Identity and Access Management (IAM) service",
"required": "true",
"secured": "true",
"label": "Access Key ID",
"default": null,
"options": null,
"value": "1234"
},
{
"name": "aws_secret_key",
"type": "password",
"description": "The API Secret Access Key for AWS generated in the Identity and Access Management (IAM) service",
"required": "true",
"secured": "true",
"label": "Secret Access Key",
"default": null,
"options": null,
"value": "5678"
},
{
"name": "aws_default_region",
"type": "string",
"description": "Region to deploy the service on.",
"required": "true",
"secured": "false",
"label": "AWS Region",
"default": null,
"options": [
{
"label": "US East (Northern Virginia)",
"value": "us-east-1",
"default": "true"
},
{
"label": "US East (Ohio) Region",
"value": "us-east-2"
},
{
"label": "US West (Northern California)",
"value": "us-west-1"
},
{
"label": "US West (Oregon) Region",
"value": "us-west-2"
},
{
"label": "Asia Pacific (Seoul) Region",
"value": "ap-northeast-2"
},
{
"label": "Asia Pacific (Singapore) Region",
"value": "ap-southeast-1"
},
{
"label": "Asia Pacific (Sydney) Region",
"value": "ap-southeast-2"
},
{
"label": "Asia Pacific (Tokyo) Region",
"value": "ap-northeast-1"
},
{
"label": "EU (Frankfurt) Region",
"value": "eu-central-1"
},
{
"label": "EU (Ireland) Region",
"value": "eu-west-1"
},
{
"label": "EU (London) Region",
"value": "eu-west-2"
},
{
"label": "AWS GovCloud (US)",
"value": "us-gov-west-1"
}
],
"value": "us-east-1"
}
],
"configuration_parameters": [
],
"providerId": "5bb76eb78e04ec001c19466f",
"additional_Parameters": [
{
"plugin": "plugin-terraform",
"supported_api_types": [
"stack",
"iaas"
],
"supported_template_types": [
{
"template_type": "Terraform",
"template_formats": [
"JSON",
"HCL"
]
}
],
"configuration_parameters": [
]
}
]
}
- Provider Id - Using the Retrieve the list of providers GET API call, retrieve the Provider id. In this example, AWS provider is used.
cloudOE_spaceGuid
query parameter governs the namespace to be used when a cloud connection is created. In this example, the cloud connection gets created in the namespace that$NAMESPACE
resolves to. Now, if you want to create the cloud connection to be globally available and not tied to any specific namespace, then omit the cloudOE_spaceGuid query parameter.
GET the list of cloud connections
curl -k -X GET \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
"https://${TSA_HOSTNAME}/cam/api/v1/cloudconnections?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}&cloudOE_spaceGuid=${NAMESPACE}"
Example output:
[
{
"name": "MyVMware",
"description": "My VMware vSphere Connection",
"connection_parameters": [
{
"name": "vsphere_user",
"value": "username@vsphere.local",
"secured": "false"
},
{
"name": "vsphere_password",
"value": "*****",
"secured": "true"
},
{
"name": "vsphere_server",
"value": "1.2.3.4",
"secured": "false"
}
],
"validate": true,
"message": "",
"id": "59f3b11bd1b007002263c5f3",
"providerId": "59f38667d1b007002263c578",
"additional_Parameters": {
"0": {
"plugin": "plugin-terraform"
}
},
"tenantId": "5c0e0a5e-d431-468c-9a11-a3df3978e424"
}
]
The cloudOE_spaceGuid
query parameter is optional and the search results display all cloud connections that $NAMESPACE
resolves to.
GET a specific cloud connection (filter)
curl -k -X GET \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
"https://${TSA_HOSTNAME}/cam/api/v1/cloudconnections?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}&filter=%7B%22where%22%3A%20%7B%22name%22%3A%20%22vmware.octravis%22%20%7D%7D"
Example output:
[
{
"name": "vmware.octravis",
"description": "vmware.octravis",
"connection_parameters": [
{
"name": "vsphere_user",
"value": "octravis@vsphere.local",
"secured": "false"
},
{
"name": "vsphere_password",
"value": "*****",
"secured": "true"
},
{
"name": "vsphere_server",
"value": "1.2.3.123",
"secured": "false"
}
],
"configuration_parameters": [
{
"name": "",
"value": ""
}
],
"validate": true,
"message": "",
"id": "5a4d094a47ff9c0022728759",
"providerId": "5a4cf14b47ff9c0022728676",
"additional_Parameters": [
{
"plugin": "plugin-terraform"
}
],
"tenantId": "15e7d67e-9f73-43cd-9759-b39ebeea85e8"
}
]
Update a specific cloud connection
curl -k -X POST \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d @cc_update.json \
"https://${TSA_HOSTNAME}/cam/api/v1/cloudconnections/${CAM_CLOUD_CONNECTION_ID}?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}&cloudOE_spaceGuid=${NAMESPACE}"
Example request body:
{
"name": "Updated connection name",
"description": "Updated connection description"
}
Delete a specific cloud connection
curl -k -X DELETE \
-H "Authorization: Bearer ${TSA_BEARER_TOKEN}" \
"https://${TSA_HOSTNAME}/cam/api/v1/cloudconnections/${CAM_CLOUD_CONNECTION_ID}?tenantId=${TSA_TENANT_ID}&ace_orgGuid=${MCM_TEAM}"