When making an API request involving integrations, each integration expects its own metadata. The following is a list of metadata required to create and manage each integrations with Apono's API. If a secret is required to connect to a service, it is noted along with the type of secret that can be supplied.

Usage

API

Apono's REST API includes specific metadata for each integration type. For example, if you want to create an integration with Amazon EC2, you would send a POST request to the integrations endpoint. The entry for Amazon EC2 (see below) lists the metadata that must be included. Note that "region" is an object containing two strings and an array of AWS region names.

The complete API request looks like this:

curl --request POST \
     --url https://api.apono.io/api/v2/integrations \
     --header 'accept: application/json' \
     --header 'authorization: Bearer aup_anMt..' \
     --header 'content-type: application/json' \
     --data '
{
  "metadata": {
    "name": "Amazon EC2",
    "type": "aws-ec2-ssm",
    "region": {
       "id": "region",
       "label": "Region",
       "values": ["us-east-1","us-west-1"]
    }
    "default": ""
  }
}
'

If a secret is required to access the service, then this is added to the request data in addition to the metadata:

  secret = {  
    secret_id = "platform:secretmanager:secret/location"  
  }

Terraform

When adding an Apono-connected resource to the Terraform configuration file, you must add the same metadata listed here for each integration. Continuing with the Amazon EC2 example from above, the following is added to the Terraform configuration file:

resource "apono_integration" "ec2_instance" {
  name         = "Amazon EC2"
  type         = "aws-ec2-ssm"
  connector_id = "[MY_APONO_CONNECTOR_ID]"
  metadata = {
    {
      "name": "Amazon EC2",
      "type": "aws-ec2-ssm",
      "region": {
    	  "id": "region",
        "label": "Region",
        "values": ["us-east-1","us-west-1"]
			}
      "default": ""
    }
  }
  secret = {
    seret_id = "platform:secretmanager:secret/location"
  }
}

Amazon Services

Amazon EC2

Metadata

ParameterTypeValue
namestringAmazon EC2
typestringaws-ec2-ssm
regionobjectAWS regions
-- idstringregion
-- labelstringRegion
-- valuesarray[region1, region2..] (e.g. us-west-1)
defaultstring""

Secret

  • Amazon EC2 does not require a secret

Amazon ECR

Metadata

Parameter/ElementTypeValue
namestringAmazon ECR
typestringaws-ecr
regionobjectAWS regions
-- idstringregion
-- labelstringRegion
-- valuesarray[region1, region2..] (e.g. us-west-1)
defaultstring""

Secret

  • Amazon ECR does not require a secret

Amazon IAM Group

Metadata

ParameterTypeValue
namestringAmazon IAM Group
typestringaws-iam-group

Secret

  • Amazon IAM Group does not require a secret

Amazon IAM Policy

Metadata

ParameterTypeValue
namestringAmazon IAM Policy
typestringaws-iam-policy

Secret

  • Amazon IAM Policy does not require a secret

Amazon IAM Role

Metadata

ParameterTypeValue
namestringAmazon IAM Role
typestringaws-iam-role

Secret

  • Amazon IAM Role does not require a secret

Amazon Lambda

Metadata

ParameterTypeValue
namestringAmazon Lambda
typestringaws-lambda
regionobjectAWS region(s)
-- idstringregion
-- labelstringRegion
-- valuesarray[region1, region2..] (e.g. us-west-1)
defaultstring""

Secret

  • Amazon Lambda does not require a secret

Amazon S3

Metadata

ParameterTypeValue
namestringAmazon S3
typestringaws-s3

Secret

  • Amazon S3 does not require a secret

Amazon Secrets Manager

Metadata

ParameterTypeValue
namestringAmazon Secrets Manager
typestringaws-secrets-manager
regionobjectAWS regions
-- idstringregion
-- labelstringRegion
-- valuesarray[region1, region2..] (e.g. us-west-1)
defaultstring""

Secret

  • Amazon Secrets Manager does not require a secret

Amazon SSM

Metadata

ParameterTypeValue
namestringAmazon SSM
typestringaws-ssm
(region)objectAWS regions
-- idstringregion
-- labelstringRegion
-- valuesarray[region1, region2..] (e.g. us-west-1)
defaultstring""

Secret

  • Amazon SSM does not require a secret

Amazon IAM Identity Center (SSO)

Metadata

Parameter/ElementTypeValue
namestringAmazon IAM Identity Center (SSO)
typestringaws-sso
portalobject
-- idstring"aws_sso_portal"
-- labelstring"SSO Portal"
-- valuesarray[]
default""

Secret

  • Amazon IAM Identity Center does not require a secret

Azure Services

Azure AD

Metadata

ParameterTypeValue
namestringAzure AD
typestringazure-ad-idp

Secret

  • Azure AD does not require a secret

Azure IAM

Metadata

ParameterTypeValue
namestringAzure IAM
typestringazure-iam
subscriptionobject
-- idstringsubscription_id
-- labelstringAzure Subscription Id
-- valuesarray[]
defaultstring""

Secret

  • Azure IAM does not require a secret

Azure Resource Group

Metadata

ParameterTypeValue
namestringAzure IAM
typestringazure-iam
subscriptionobject
-- idstringsubscription_id
-- labelstringAzure Subscription Id
-- valuesarray[]
defaultstring""

Secret

  • Azure Resource Group does not require a secret

Azure Storage

Metadata

ParameterTypeValue
nameAzure Storage
typeazure-storage
subscriptionobject
-- idstringsubscription_id
-- labelstringAzure Subscription Id
-- valuesarray[]
defaultstring""

Secret

  • Azure Storage does not require a secret

Elasticsearch

Elasticsearch

Metadata

ParameterTypeValue
namestringElasticsearch
typestringelasticsearch
proxyobject
-- idstringproxy_address
-- labelstringProxy Address
-- valuesarray[]
-- defaultstring""
clustersobject
-- idstringclusters
-- labelstringClusters
-- valuesarray[]
defaultstring""

Secret

  • Elasticsearch does not require a secret

GitHub

GitHub

Metadata

ParameterTypeValue
namestringGithub
typestringgithub
organizationobject
-- idstringorg
-- labelstringOrganization
-- valuesarray[]
-- defaultstring""

Secret

GitHub requires one of these secrets:

  • AWS
  • GCP
  • Kubernetes

Google Services

Google BigQuery

Metadata

ParameterTypeValue
namestringGoogle BigQuery
typestringgcp-bigquery
projectobject
-- idstringproject_id
-- labelstringProject ID
-- valuesarray[]
-- defaultstring""
datasetobject
-- idstringdataset_id
-- labelstringDataset Name
-- valuesarray[]
-- defaultstring""

Secret

  • Google BigQuery does not require a secret

Google Cloud Spanner

Metadata

ParameterTypeValue
namestringGoogle Cloud Spanner
typestringgcp-cloud-spanner
projectobject
-- idstringproject_id
-- labelstringProject ID
-- valuesarray[]
-- defaultstring""

Secret

  • Google Cloud Spanner does not require a secret

Google Cloud SQL - MySQL

Metadata

ParameterTypeValue
namestringGoogle Cloud SQL - MySQL
typestringggcp-cloud-sql-mysql
host nameobject{
"id": "hostname",
"label": "Hostname",
"values": [],
"default": ""
}
-- idstringhostname
-- labelstringHostname
-- valuesarray[]
-- defaultstring""
portobject
-- idstringport
-- labelstringPort
-- valuesarray[]
-- defaultstring"3306"

Secret

Google Cloud SQL - MySQL requires one of these secrets:

  1. GCP
  2. Kubernetes

Google Cloud SQL - PostgreSQL

Metadata

ParameterTypeValue
namestringGoogle Cloud SQL - PostgreSQL
typestringggcp-cloud-sql-postgresql
host nameobject
-- idstringhostname
-- labelstringHostname
-- valuesarray[]
-- defaultstring""
portobject
-- idstringport
-- labelstringPort
-- valuesarray[]
-- defaultstring3306
db nameobject
-- idstringdbname
-- labelstringDatabase Name
-- valuesarray[]
-- defaultstring"postgres"
ssl modeobject
-- idstring
-- labelstring
-- valuesarray[
"disable",
"allow",
"prefer",
"require",
"verify-ca",
"verify-full"
]
defaultstringdisable

Secret

Google Cloud SQL - PostgreSQL requires a secret of one of these types:

  1. GCP
  2. Kubernetes

Google Cloud Storage

Metadata

ParameterTypeValue
namestringGoogle Cloud Storage
typestringggcp-cloud-storage
host nameobject
-- idstringhostname
-- labelstringHostname
-- valuesarray[]
-- defaultstring""
project idobject
-- idstringproject_id
-- labelstringProject ID
-- valuesarray[]
-- defaultstring""

Secret

Google Cloud Storage does not require a secret

Google Organization Role (Folder Wide)

Metadata

ParameterTypeValue
namestringGoogle Organization Role (Folder Wide)
typestringgcp-organization-role-folder-wid
organization idobject
-- idstringorganization_id
-- labelstringOrganization ID
-- valuesarray[]
-- defaultstring""

Secret

Google Organization Role does not require a secret

Google Organization Role (Organization Wide)

Metadata

ParameterTypeValue
namestringGoogle Organization Role (Organization Wide)
typestringgcp-organization-role-organization-wide
organization id
-- idstringorganization_id
-- labelstringOrganization ID
-- valuesarray[]
defaultstring""

Secret

Google Organization Role does not require a secret

Google Organization Role (Project Wide)

Metadata

ParameterTypeValue
namestringGoogle Organization Role (Project Wide)
typestringgcp-organization-role
organization idobject
-- idstringorganization_id
-- labelstringOrganization ID
-- valuesarray[]
-- defaultstring""

Secret

Google Organization Role does not require a secret

Google Role

Metadata

ParameterTypeValue
namestringGoogle Role
typestringgcp-role
project idobject
-- idstringproject
-- labelstringProject ID
-- valuesarray[]
-- defaultstring""

Secret

Google Role does not require a secret

Google Secret Manager

Metadata

ParameterTypeValue
namestringGoogle Secret Manager
typestringgcp-secret-manager
project idobject
-- idstringproject_id
-- labelstringProject ID
-- valuesarray[]
-- defaultstring""

Secret

Google Secret Manager does not require a secret

Google Workplace

Metadata

ParameterTypeValue
namestringGoogle Workspace
typestringgcp-idp

Secret

Google Workplace does not require a secret

JumpCloud Services

JumpCloud Directory

Metadata

ParameterTypeValue
namestringJumpCloud Directory
typestringjumpcloud-idp
(api key)object
-- idstringapi_key
-- labelstringAPI Key
-- valuesarray[]
-- defaultstring""
(manager field name)object
-- idstringmanager_field_name
-- labelstringCustom Manager Field Name (Optional)
-- valuesarray[]
-- defaultstring""

Secret

JumpCloud Directory does not require a secret

Kubernetes

Kubernetes

Metadata

ParameterTypeValue
namestringKubernetes
typestringk8s-roles
(server url)object
-- idstringserver_url
-- labelstringServer URL
-- valuesarray[]
-- defaultstring""
certificate authorityobject
-- idstringcertificate_authority
-- labelstringCertificate Authority
-- valuesarray[]
-- defaultstring""
cluster nameobject
-- idstringcluster_name
-- labelstringkubeconfig Cluster Name
-- valuesarray[]
-- defaultstring""
kubernetes api serverobject
-- idstringkubeconfig_api_server_url
-- labelstringkubeconfig Server URL
-- valuesarray[]
-- defaultstring""

Secret

Kubernetes requires one of these secrets:

  • AWS
  • GCP
  • Kubernetes
  • Azure

MongoDB

MongoDB

Metadata

ParameterTypeValue
namestringMongoDB
typestringmongodb
host nameobject
-- idstringhostname
-- labelstringHostname
-- valuesarray[]
-- defaultstring""
portobject
-- idstringport
-- labelstringPort
-- valuesarray[]
-- defaultstring27017

Secret

MongoDB requires one of these secrets:

  • AWS
  • GCP
  • Kubernetes
  • Azure

MySQL Services

MySQL

Metadata

ParameterTypeValue
namestringMySQL
typestringmysql
host nameobject
-- idstringhostname
-- labelstringHostname
-- values[]
-- defaultstring""
portobject
-- idstringport
-- labelstringPort
-- valuesarray[]
-- defaultstring3306

Secret

MySQL requires one of these secrets:

  • AWS
  • GCP
  • Kubernetes
  • Azure

Okta Services

Okta Directory

Metadata

ParameterTypeValue
namestringOkta Directory
typestringokta-idp
domainobject
-- idstringdomain
-- labelstringDomain
-- valuesarray[]
-- defaultstring""
app client idobject
-- idstringapp_client_id"
-- labelstringApp Client Id
-- valuesarray[]
-- defaultstring""
manager field nameobject
-- idstringmanager_field_name
-- labelstringCustom Manager Field Name (Optional)
-- valuesarray[]
-- defaultstring""

Secret

Okta Directory does not require a secret

PostgreSQL Services

PostgreSQL

Metadata

ParameterTypeValue
namestringPostgreSQL
typestringpostgresql
host nameobject
-- idstringhostname
-- labelstringHostname
-- valuesarray[]
-- defaultstring""
portobject
-- idstringport
-- labelstringPort
-- valuesarray[]
-- defaultstring5432
db nameobject
-- idstringdbname
-- labelstringDatabase Name
-- valuesarray[]
-- defaultstringpostgres
ssl modeobject
-- idstringsslmode
-- labelstringSSL Mode
-- valuesarray
defaultstringdisable

Secret

PostgreSQL requires one of these secrets:

  • AWS
  • GCP
  • Kubernetes
  • Azure

Slack

Slack

Metadata

ParameterTypeValue
namestringSlack
typestringslack

Secret

Slack does not require a secret