{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2022-07-26",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"interconnect",
    "jsonVersion":"1.0",
    "protocol":"smithy-rpc-v2-cbor",
    "protocols":[
      "smithy-rpc-v2-cbor",
      "json"
    ],
    "serviceFullName":"Interconnect",
    "serviceId":"Interconnect",
    "signatureVersion":"v4",
    "signingName":"interconnect",
    "targetPrefix":"Interconnect",
    "uid":"interconnect-2022-07-26"
  },
  "operations":{
    "AcceptConnectionProposal":{
      "name":"AcceptConnectionProposal",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"AcceptConnectionProposalRequest"},
      "output":{"shape":"AcceptConnectionProposalResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "idempotent":true
    },
    "CreateConnection":{
      "name":"CreateConnection",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateConnectionRequest"},
      "output":{"shape":"CreateConnectionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "idempotent":true
    },
    "DeleteConnection":{
      "name":"DeleteConnection",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteConnectionRequest"},
      "output":{"shape":"DeleteConnectionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "idempotent":true
    },
    "DescribeConnectionProposal":{
      "name":"DescribeConnectionProposal",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeConnectionProposalRequest"},
      "output":{"shape":"DescribeConnectionProposalResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "GetConnection":{
      "name":"GetConnection",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetConnectionRequest"},
      "output":{"shape":"GetConnectionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "GetEnvironment":{
      "name":"GetEnvironment",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetEnvironmentRequest"},
      "output":{"shape":"GetEnvironmentResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "ListAttachPoints":{
      "name":"ListAttachPoints",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListAttachPointsRequest"},
      "output":{"shape":"ListAttachPointsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "ListConnections":{
      "name":"ListConnections",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListConnectionsRequest"},
      "output":{"shape":"ListConnectionsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "ListEnvironments":{
      "name":"ListEnvironments",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListEnvironmentsRequest"},
      "output":{"shape":"ListEnvironmentsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "readonly":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ]
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ]
    },
    "UpdateConnection":{
      "name":"UpdateConnection",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateConnectionRequest"},
      "output":{"shape":"UpdateConnectionResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InterconnectClientException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InterconnectValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InterconnectServerException"}
      ],
      "idempotent":true
    }
  },
  "shapes":{
    "AcceptConnectionProposalRequest":{
      "type":"structure",
      "required":[
        "attachPoint",
        "activationKey"
      ],
      "members":{
        "attachPoint":{"shape":"AttachPoint"},
        "activationKey":{"shape":"ActivationKey"},
        "description":{"shape":"ConnectionDescription"},
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "AcceptConnectionProposalResponse":{
      "type":"structure",
      "members":{
        "connection":{"shape":"Connection"}
      }
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "ActivationKey":{
      "type":"string",
      "max":2048,
      "min":1,
      "sensitive":true
    },
    "AmazonResourceName":{
      "type":"string",
      "max":150,
      "min":59,
      "pattern":"arn:aws[a-z-]*:interconnect:[^:]+:[0-9]{12}:connection/(mcc|lmcc)-[a-z0-9]{8}"
    },
    "AttachPoint":{
      "type":"structure",
      "members":{
        "directConnectGateway":{"shape":"DirectConnectGatewayAttachPoint"},
        "arn":{"shape":"AmazonResourceName"}
      },
      "union":true
    },
    "AttachPointDescriptor":{
      "type":"structure",
      "required":[
        "type",
        "identifier",
        "name"
      ],
      "members":{
        "type":{"shape":"AttachPointType"},
        "identifier":{"shape":"String"},
        "name":{"shape":"String"}
      }
    },
    "AttachPointDescriptorList":{
      "type":"list",
      "member":{"shape":"AttachPointDescriptor"}
    },
    "AttachPointType":{
      "type":"string",
      "enum":["DirectConnectGateway"]
    },
    "BandwidthList":{
      "type":"list",
      "member":{"shape":"ConnectionBandwidth"}
    },
    "Bandwidths":{
      "type":"structure",
      "members":{
        "available":{"shape":"BandwidthList"},
        "supported":{"shape":"BandwidthList"}
      }
    },
    "BillingTier":{
      "type":"integer",
      "box":true,
      "max":8,
      "min":0
    },
    "CloudServiceProvider":{
      "type":"string",
      "max":32,
      "min":0
    },
    "Connection":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "description",
        "bandwidth",
        "attachPoint",
        "environmentId",
        "provider",
        "location",
        "type",
        "state",
        "sharedId",
        "ownerAccount",
        "activationKey"
      ],
      "members":{
        "id":{"shape":"ConnectionId"},
        "arn":{"shape":"AmazonResourceName"},
        "description":{"shape":"ConnectionDescription"},
        "bandwidth":{"shape":"ConnectionBandwidth"},
        "attachPoint":{"shape":"AttachPoint"},
        "environmentId":{"shape":"EnvironmentId"},
        "provider":{"shape":"Provider"},
        "location":{"shape":"Location"},
        "type":{"shape":"ProductType"},
        "state":{"shape":"ConnectionState"},
        "sharedId":{"shape":"ConnectionSharedId"},
        "billingTier":{"shape":"BillingTier"},
        "ownerAccount":{"shape":"OwnerAccountId"},
        "activationKey":{"shape":"ActivationKey"},
        "tags":{"shape":"TagMap"}
      }
    },
    "ConnectionBandwidth":{
      "type":"string",
      "max":8,
      "min":1,
      "pattern":"\\d+[MG]bps"
    },
    "ConnectionDescription":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[-a-zA-Z0-9_ ]+"
    },
    "ConnectionId":{
      "type":"string",
      "max":32,
      "min":1,
      "pattern":"(mcc|lmcc)-[a-z0-9]{8}"
    },
    "ConnectionSharedId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "ConnectionState":{
      "type":"string",
      "enum":[
        "available",
        "requested",
        "pending",
        "down",
        "deleting",
        "deleted",
        "failed",
        "updating"
      ]
    },
    "ConnectionSummariesList":{
      "type":"list",
      "member":{"shape":"ConnectionSummary"}
    },
    "ConnectionSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "description",
        "bandwidth",
        "attachPoint",
        "environmentId",
        "provider",
        "location",
        "type",
        "state",
        "sharedId"
      ],
      "members":{
        "id":{"shape":"ConnectionId"},
        "arn":{"shape":"AmazonResourceName"},
        "description":{"shape":"ConnectionDescription"},
        "bandwidth":{"shape":"ConnectionBandwidth"},
        "attachPoint":{"shape":"AttachPoint"},
        "environmentId":{"shape":"EnvironmentId"},
        "provider":{"shape":"Provider"},
        "location":{"shape":"Location"},
        "type":{"shape":"ProductType"},
        "state":{"shape":"ConnectionState"},
        "sharedId":{"shape":"ConnectionSharedId"},
        "billingTier":{"shape":"BillingTier"}
      }
    },
    "CreateConnectionRequest":{
      "type":"structure",
      "required":[
        "bandwidth",
        "attachPoint",
        "environmentId"
      ],
      "members":{
        "description":{"shape":"ConnectionDescription"},
        "bandwidth":{"shape":"ConnectionBandwidth"},
        "attachPoint":{"shape":"AttachPoint"},
        "environmentId":{"shape":"EnvironmentId"},
        "remoteAccount":{"shape":"RemoteAccountIdentifier"},
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "CreateConnectionResponse":{
      "type":"structure",
      "members":{
        "connection":{"shape":"Connection"}
      }
    },
    "DeleteConnectionRequest":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{"shape":"ConnectionId"},
        "clientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "DeleteConnectionResponse":{
      "type":"structure",
      "required":["connection"],
      "members":{
        "connection":{"shape":"Connection"}
      }
    },
    "DescribeConnectionProposalRequest":{
      "type":"structure",
      "required":["activationKey"],
      "members":{
        "activationKey":{"shape":"ActivationKey"}
      }
    },
    "DescribeConnectionProposalResponse":{
      "type":"structure",
      "required":[
        "bandwidth",
        "environmentId",
        "provider",
        "location"
      ],
      "members":{
        "bandwidth":{"shape":"ConnectionBandwidth"},
        "environmentId":{"shape":"EnvironmentId"},
        "provider":{"shape":"Provider"},
        "location":{"shape":"Location"}
      }
    },
    "DirectConnectGatewayAttachPoint":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "Environment":{
      "type":"structure",
      "required":[
        "provider",
        "location",
        "environmentId",
        "state",
        "bandwidths",
        "type"
      ],
      "members":{
        "provider":{"shape":"Provider"},
        "location":{"shape":"Location"},
        "environmentId":{"shape":"EnvironmentId"},
        "state":{"shape":"EnvironmentState"},
        "bandwidths":{"shape":"Bandwidths"},
        "type":{"shape":"ProductType"},
        "activationPageUrl":{"shape":"String"},
        "remoteIdentifierType":{"shape":"RemoteAccountIdentifierType"}
      }
    },
    "EnvironmentId":{
      "type":"string",
      "max":64,
      "min":1
    },
    "EnvironmentList":{
      "type":"list",
      "member":{"shape":"Environment"}
    },
    "EnvironmentState":{
      "type":"string",
      "enum":[
        "available",
        "limited",
        "unavailable"
      ]
    },
    "GetConnectionRequest":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{"shape":"ConnectionId"}
      }
    },
    "GetConnectionResponse":{
      "type":"structure",
      "members":{
        "connection":{"shape":"Connection"}
      }
    },
    "GetEnvironmentRequest":{
      "type":"structure",
      "required":["id"],
      "members":{
        "id":{"shape":"EnvironmentId"}
      }
    },
    "GetEnvironmentResponse":{
      "type":"structure",
      "required":["environment"],
      "members":{
        "environment":{"shape":"Environment"}
      }
    },
    "InterconnectClientException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "InterconnectServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InterconnectValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "LastMileProvider":{
      "type":"string",
      "max":32,
      "min":0
    },
    "ListAttachPointsRequest":{
      "type":"structure",
      "required":["environmentId"],
      "members":{
        "environmentId":{"shape":"EnvironmentId"},
        "maxResults":{"shape":"MaxResults"},
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListAttachPointsResponse":{
      "type":"structure",
      "required":["attachPoints"],
      "members":{
        "attachPoints":{"shape":"AttachPointDescriptorList"},
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListConnectionsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{"shape":"MaxResults"},
        "nextToken":{"shape":"NextToken"},
        "state":{"shape":"ConnectionState"},
        "environmentId":{"shape":"EnvironmentId"},
        "provider":{"shape":"Provider"},
        "attachPoint":{"shape":"AttachPoint"}
      }
    },
    "ListConnectionsResponse":{
      "type":"structure",
      "members":{
        "connections":{"shape":"ConnectionSummariesList"},
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListEnvironmentsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{"shape":"MaxResults"},
        "nextToken":{"shape":"NextToken"},
        "provider":{"shape":"Provider"},
        "location":{"shape":"Location"}
      }
    },
    "ListEnvironmentsResponse":{
      "type":"structure",
      "required":["environments"],
      "members":{
        "environments":{"shape":"EnvironmentList"},
        "nextToken":{"shape":"String"}
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["arn"],
      "members":{
        "arn":{"shape":"AmazonResourceName"}
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{"shape":"TagMap"}
      }
    },
    "Location":{
      "type":"string",
      "max":255,
      "min":0
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "OwnerAccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[0-9]{12}"
    },
    "ProductType":{
      "type":"string",
      "max":32,
      "min":5
    },
    "Provider":{
      "type":"structure",
      "members":{
        "cloudServiceProvider":{"shape":"CloudServiceProvider"},
        "lastMileProvider":{"shape":"LastMileProvider"}
      },
      "union":true
    },
    "RemoteAccountIdentifier":{
      "type":"structure",
      "members":{
        "identifier":{"shape":"RemoteOwnerAccount"}
      },
      "union":true
    },
    "RemoteAccountIdentifierType":{
      "type":"string",
      "enum":[
        "account",
        "email"
      ]
    },
    "RemoteOwnerAccount":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[-a-zA-Z0-9_@\\.]+"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"}
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "arn",
        "tags"
      ],
      "members":{
        "arn":{"shape":"AmazonResourceName"},
        "tags":{"shape":"TagMap"}
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "arn",
        "tagKeys"
      ],
      "members":{
        "arn":{"shape":"AmazonResourceName"},
        "tagKeys":{"shape":"TagKeyList"}
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateConnectionRequest":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{"shape":"ConnectionId"},
        "description":{"shape":"ConnectionDescription"},
        "bandwidth":{"shape":"ConnectionBandwidth"},
        "clientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "UpdateConnectionResponse":{
      "type":"structure",
      "members":{
        "connection":{"shape":"Connection"}
      }
    }
  }
}
