{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2017-08-08",
    "endpointPrefix":"connect",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"Amazon Connect",
    "serviceFullName":"Amazon Connect Service",
    "serviceId":"Connect",
    "signatureVersion":"v4",
    "signingName":"connect",
    "uid":"connect-2017-08-08"
  },
  "operations":{
    "StartOutboundVoiceContact":{
      "name":"StartOutboundVoiceContact",
      "http":{
        "method":"PUT",
        "requestUri":"/contact/outbound-voice"
      },
      "input":{"shape":"StartOutboundVoiceContactRequest"},
      "output":{"shape":"StartOutboundVoiceContactResponse"},
      "errors":[
        {"shape":"InvalidRequestException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceException"},
        {"shape":"LimitExceededException"},
        {"shape":"DestinationNotAllowedException"},
        {"shape":"OutboundContactNotPermittedException"}
      ],
      "documentation":"<p>The <code>StartOutboundVoiceContact</code> operation initiates a contact flow to place an outbound call to a customer.</p> <p>There is a throttling limit placed on usage of the API that includes a <code>RateLimit</code> of 2 per second, and a <code>BurstLimit</code> of 5 per second.</p> <p>If you are using an IAM account, it must have permissions to the <code>connect:StartOutboundVoiceContact</code> action.</p>"
    },
    "StopContact":{
      "name":"StopContact",
      "http":{
        "method":"POST",
        "requestUri":"/contact/stop"
      },
      "input":{"shape":"StopContactRequest"},
      "output":{"shape":"StopContactResponse"},
      "errors":[
        {"shape":"InvalidRequestException"},
        {"shape":"ContactNotFoundException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceException"}
      ],
      "documentation":"<p>Ends the contact initiated by the <code>StartOutboundVoiceContact</code> operation.</p> <p>If you are using an IAM account, it must have permissions to the <code>connect:StopContact</code> operation.</p>"
    }
  },
  "shapes":{
    "AttributeName":{
      "type":"string",
      "documentation":"Key for the key value pair to be used for additional attributes.",
      "max":32767,
      "min":1
    },
    "AttributeValue":{
      "type":"string",
      "documentation":"Value for the key value pair to be used for additional attributes.",
      "max":32767,
      "min":0
    },
    "Attributes":{
      "type":"map",
      "key":{"shape":"AttributeName"},
      "value":{"shape":"AttributeValue"},
      "documentation":"Additional attributes can be provided in the request using this field. This will be passed to the contact flow execution. Client can make use of this additional info in their contact flow."
    },
    "ClientToken":{
      "type":"string",
      "documentation":"Dedupe token to be provided by the client. This token is used to avoid duplicate calls to the customer.",
      "max":500
    },
    "ContactFlowId":{
      "type":"string",
      "documentation":"Amazon resource name for the contact flow to be executed to handle the current call.",
      "max":500
    },
    "ContactId":{
      "type":"string",
      "documentation":"Amazon Connect contact identifier. An unique ContactId will be generated for each contact request.",
      "max":256,
      "min":1
    },
    "ContactNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>The contact with the specified ID is not active or does not exist.</p>",
      "error":{"httpStatusCode":410},
      "exception":true
    },
    "DestinationNotAllowedException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>Outbound calls to the destination number are not allowed for your instance. You can request that the country be included in the allowed countries for your instance by submitting a <a href=\"https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase\">Service Limit Increase</a>.</p>",
      "error":{"httpStatusCode":403},
      "exception":true
    },
    "InstanceId":{
      "type":"string",
      "documentation":"Amazon Connect Organization ARN. A client must provide its organization ARN in order to place a call. This defines the call from organization."
    },
    "InternalServiceException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>Request processing failed due to an error or failure with the service.</p>",
      "error":{"httpStatusCode":500},
      "exception":true
    },
    "InvalidParameterException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>One or more of the parameters provided to the operation are not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidRequestException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>The request is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "LimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>The limit exceeded the maximum allowed active calls in a queue.</p>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "Message":{"type":"string"},
    "OutboundContactNotPermittedException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>The contact is not permitted because outbound calling is not enabled for the instance.</p>",
      "error":{"httpStatusCode":403},
      "exception":true
    },
    "PhoneNumber":{
      "type":"string",
      "documentation":"End customer's phone number to call."
    },
    "QueueId":{
      "type":"string",
      "documentation":"Identifier of the queue to be used for the contact routing."
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "Message":{
          "shape":"Message",
          "documentation":"<p>The message.</p>"
        }
      },
      "documentation":"<p>The specified resource was not found.</p>",
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "StartOutboundVoiceContactRequest":{
      "type":"structure",
      "required":[
        "DestinationPhoneNumber",
        "ContactFlowId",
        "InstanceId"
      ],
      "members":{
        "DestinationPhoneNumber":{
          "shape":"PhoneNumber",
          "documentation":"<p>The phone number, in E.164 format, of the customer to call with the outbound contact.</p>"
        },
        "ContactFlowId":{
          "shape":"ContactFlowId",
          "documentation":"<p>The identifier for the contact flow to execute for the outbound call. This is a GUID value only. Amazon Resource Name (ARN) values are not supported.</p> <p>To find the <code>ContactFlowId</code>, open the contact flow to use in the Amazon Connect contact flow designer. The ID for the contact flow is displayed in the address bar as part of the URL. For example, an address displayed when you open a contact flow is similar to the following: <code>https://myconnectinstance.awsapps.com/connect/contact-flows/edit?id=arn:aws:connect:us-east-1:361814831152:instance/2fb42df9-78a2-4b99-b484-f5cf80dc300c/contact-flow/<i>b0b8f2dd-ed1b-4c44-af36-ce189a178181</i> </code>. At the end of the URL, you see <code>contact-flow/b0b8f2dd-ed1b-4c44-af36-ce189a178181</code>. The <code>ContactFlowID</code> for this contact flow is <code> <i>b0b8f2dd-ed1b-4c44-af36-ce189a178181</i> </code>. Make sure to include only the GUID after the \"contact-flow/\" in your requests.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The identifier for your Amazon Connect instance. To find the <code>InstanceId</code> value for your Amazon Connect instance, open the <a href=\"https://console.aws.amazon.com/connect/\">Amazon Connect console</a>. Select the instance alias of the instance and view the instance ID in the <b>Overview</b> section. For example, the instance ID is the set of characters at the end of the instance ARN, after \"instance/\", such as 10a4c4eb-f57e-4d4c-b602-bf39176ced07.</p>"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned. If the contact is disconnected, a new contact is started.</p>",
          "idempotencyToken":true
        },
        "SourcePhoneNumber":{
          "shape":"PhoneNumber",
          "documentation":"<p>The phone number, in E.164 format, associated with your Amazon Connect instance to use to place the outbound call.</p>"
        },
        "QueueId":{
          "shape":"QueueId",
          "documentation":"<p>The queue to which to add the call. If you specify a queue, the phone displayed for caller ID is the phone number defined for the queue. If you do not specify a queue, the queue used is the queue defined in the contact flow specified by <code>ContactFlowId</code>.</p> <p>To find the <code>QueueId</code>, open the queue to use in the Amazon Connect queue editor. The ID for the queue is displayed in the address bar as part of the URL. For example, the <code>QueueId</code> value is the set of characters at the end of the URL, after \"queue/\", such as <code>aeg40574-2d01-51c3-73d6-bf8624d2168c</code>.</p>"
        },
        "Attributes":{
          "shape":"Attributes",
          "documentation":"<p>Specify a custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes.</p> <p>There can be up to 32,768 UTF-8 bytes across all key-value pairs. Attribute keys can include only alphanumeric, dash, and underscore characters.</p> <p>For example, to play a greeting when the customer answers the call, you can pass the customer name in attributes similar to the following:</p>"
        }
      }
    },
    "StartOutboundVoiceContactResponse":{
      "type":"structure",
      "members":{
        "ContactId":{
          "shape":"ContactId",
          "documentation":"<p>The unique identifier of this contact within your Amazon Connect instance.</p>"
        }
      }
    },
    "StopContactRequest":{
      "type":"structure",
      "required":[
        "ContactId",
        "InstanceId"
      ],
      "members":{
        "ContactId":{
          "shape":"ContactId",
          "documentation":"<p>The unique identifier of the contact to end. This is the <code>ContactId</code> value returned from the <code>StartOutboundVoiceContact</code> operation.</p>"
        },
        "InstanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The identifier of the Amazon Connect instance in which the contact is active.</p>"
        }
      }
    },
    "StopContactResponse":{
      "type":"structure",
      "members":{
      }
    }
  },
  "documentation":"<p>The Amazon Connect API Reference provides descriptions, syntax, and usage examples for each of the Amazon Connect actions, data types, parameters, and errors. Amazon Connect is a cloud-based contact center solution that makes it easy to set up and manage a customer contact center and provide reliable customer engagement at any scale.</p>"
}
