{
  "metadata": {
    "apiVersion": "2018-09-05",
    "endpointPrefix": "sms-voice.pinpoint",
    "signingName": "sms-voice",
    "serviceAbbreviation": "Pinpoint SMS Voice",
    "serviceFullName": "Amazon Pinpoint SMS and Voice Service",
    "serviceId": "Pinpoint SMS Voice",
    "protocol": "rest-json",
    "jsonVersion": "1.1",
    "uid": "pinpoint-sms-voice-2018-09-05",
    "signatureVersion": "v4",
    "auth": [
      "aws.auth#sigv4"
    ]
  },
  "operations": {
    "CreateConfigurationSet": {
      "name": "CreateConfigurationSet",
      "http": {
        "method": "POST",
        "requestUri": "/v1/sms-voice/configuration-sets",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateConfigurationSetRequest"
      },
      "output": {
        "shape": "CreateConfigurationSetResponse"
      },
      "errors": [
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "LimitExceededException"
        },
        {
          "shape": "InternalServiceErrorException"
        },
        {
          "shape": "AlreadyExistsException"
        }
      ]
    },
    "CreateConfigurationSetEventDestination": {
      "name": "CreateConfigurationSetEventDestination",
      "http": {
        "method": "POST",
        "requestUri": "/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations",
        "responseCode": 200
      },
      "input": {
        "shape": "CreateConfigurationSetEventDestinationRequest"
      },
      "output": {
        "shape": "CreateConfigurationSetEventDestinationResponse"
      },
      "errors": [
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "LimitExceededException"
        },
        {
          "shape": "InternalServiceErrorException"
        },
        {
          "shape": "NotFoundException"
        },
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "AlreadyExistsException"
        }
      ]
    },
    "DeleteConfigurationSet": {
      "name": "DeleteConfigurationSet",
      "http": {
        "method": "DELETE",
        "requestUri": "/v1/sms-voice/configuration-sets/{ConfigurationSetName}",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteConfigurationSetRequest"
      },
      "output": {
        "shape": "DeleteConfigurationSetResponse"
      },
      "errors": [
        {
          "shape": "NotFoundException"
        },
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    },
    "DeleteConfigurationSetEventDestination": {
      "name": "DeleteConfigurationSetEventDestination",
      "http": {
        "method": "DELETE",
        "requestUri": "/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
        "responseCode": 200
      },
      "input": {
        "shape": "DeleteConfigurationSetEventDestinationRequest"
      },
      "output": {
        "shape": "DeleteConfigurationSetEventDestinationResponse"
      },
      "errors": [
        {
          "shape": "NotFoundException"
        },
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    },
    "GetConfigurationSetEventDestinations": {
      "name": "GetConfigurationSetEventDestinations",
      "http": {
        "method": "GET",
        "requestUri": "/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations",
        "responseCode": 200
      },
      "input": {
        "shape": "GetConfigurationSetEventDestinationsRequest"
      },
      "output": {
        "shape": "GetConfigurationSetEventDestinationsResponse"
      },
      "errors": [
        {
          "shape": "NotFoundException"
        },
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    },
    "ListConfigurationSets": {
      "name": "ListConfigurationSets",
      "http": {
        "method": "GET",
        "requestUri": "/v1/sms-voice/configuration-sets",
        "responseCode": 200
      },
      "input": {
        "shape": "ListConfigurationSetsRequest"
      },
      "output": {
        "shape": "ListConfigurationSetsResponse"
      },
      "errors": [
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    },
    "SendVoiceMessage": {
      "name": "SendVoiceMessage",
      "http": {
        "method": "POST",
        "requestUri": "/v1/sms-voice/voice/message",
        "responseCode": 200
      },
      "input": {
        "shape": "SendVoiceMessageRequest"
      },
      "output": {
        "shape": "SendVoiceMessageResponse"
      },
      "errors": [
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    },
    "UpdateConfigurationSetEventDestination": {
      "name": "UpdateConfigurationSetEventDestination",
      "http": {
        "method": "PUT",
        "requestUri": "/v1/sms-voice/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
        "responseCode": 200
      },
      "input": {
        "shape": "UpdateConfigurationSetEventDestinationRequest"
      },
      "output": {
        "shape": "UpdateConfigurationSetEventDestinationResponse"
      },
      "errors": [
        {
          "shape": "NotFoundException"
        },
        {
          "shape": "TooManyRequestsException"
        },
        {
          "shape": "BadRequestException"
        },
        {
          "shape": "InternalServiceErrorException"
        }
      ]
    }
  },
  "shapes": {
    "AlreadyExistsException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 409
      }
    },
    "BadRequestException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 400
      }
    },
    "Boolean": {
      "type": "boolean"
    },
    "CallInstructionsMessageType": {
      "type": "structure",
      "members": {
        "Text": {
          "shape": "NonEmptyString"
        }
      },
      "required": []
    },
    "CloudWatchLogsDestination": {
      "type": "structure",
      "members": {
        "IamRoleArn": {
          "shape": "String"
        },
        "LogGroupArn": {
          "shape": "String"
        }
      },
      "required": []
    },
    "ConfigurationSets": {
      "type": "list",
      "member": {
        "shape": "WordCharactersWithDelimiters"
      }
    },
    "CreateConfigurationSetEventDestinationRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "ConfigurationSetName"
        },
        "EventDestination": {
          "shape": "EventDestinationDefinition"
        },
        "EventDestinationName": {
          "shape": "NonEmptyString"
        }
      },
      "required": [
        "ConfigurationSetName"
      ]
    },
    "CreateConfigurationSetEventDestinationResponse": {
      "type": "structure",
      "members": {}
    },
    "CreateConfigurationSetRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "WordCharactersWithDelimiters"
        }
      }
    },
    "CreateConfigurationSetResponse": {
      "type": "structure",
      "members": {}
    },
    "DeleteConfigurationSetEventDestinationRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "ConfigurationSetName"
        },
        "EventDestinationName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "EventDestinationName"
        }
      },
      "required": [
        "EventDestinationName",
        "ConfigurationSetName"
      ]
    },
    "DeleteConfigurationSetEventDestinationResponse": {
      "type": "structure",
      "members": {}
    },
    "DeleteConfigurationSetRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "ConfigurationSetName"
        }
      },
      "required": [
        "ConfigurationSetName"
      ]
    },
    "DeleteConfigurationSetResponse": {
      "type": "structure",
      "members": {}
    },
    "EventDestination": {
      "type": "structure",
      "members": {
        "CloudWatchLogsDestination": {
          "shape": "CloudWatchLogsDestination"
        },
        "Enabled": {
          "shape": "Boolean"
        },
        "KinesisFirehoseDestination": {
          "shape": "KinesisFirehoseDestination"
        },
        "MatchingEventTypes": {
          "shape": "EventTypes"
        },
        "Name": {
          "shape": "String"
        },
        "SnsDestination": {
          "shape": "SnsDestination"
        }
      }
    },
    "EventDestinationDefinition": {
      "type": "structure",
      "members": {
        "CloudWatchLogsDestination": {
          "shape": "CloudWatchLogsDestination"
        },
        "Enabled": {
          "shape": "Boolean"
        },
        "KinesisFirehoseDestination": {
          "shape": "KinesisFirehoseDestination"
        },
        "MatchingEventTypes": {
          "shape": "EventTypes"
        },
        "SnsDestination": {
          "shape": "SnsDestination"
        }
      },
      "required": []
    },
    "EventDestinations": {
      "type": "list",
      "member": {
        "shape": "EventDestination"
      }
    },
    "EventType": {
      "type": "string",
      "enum": [
        "INITIATED_CALL",
        "RINGING",
        "ANSWERED",
        "COMPLETED_CALL",
        "BUSY",
        "FAILED",
        "NO_ANSWER"
      ]
    },
    "EventTypes": {
      "type": "list",
      "member": {
        "shape": "EventType"
      }
    },
    "GetConfigurationSetEventDestinationsRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "ConfigurationSetName"
        }
      },
      "required": [
        "ConfigurationSetName"
      ]
    },
    "GetConfigurationSetEventDestinationsResponse": {
      "type": "structure",
      "members": {
        "EventDestinations": {
          "shape": "EventDestinations"
        }
      }
    },
    "InternalServiceErrorException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 500
      }
    },
    "KinesisFirehoseDestination": {
      "type": "structure",
      "members": {
        "DeliveryStreamArn": {
          "shape": "String"
        },
        "IamRoleArn": {
          "shape": "String"
        }
      },
      "required": []
    },
    "LimitExceededException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 412
      }
    },
    "ListConfigurationSetsRequest": {
      "type": "structure",
      "members": {
        "NextToken": {
          "shape": "__string",
          "location": "querystring",
          "locationName": "NextToken"
        },
        "PageSize": {
          "shape": "__string",
          "location": "querystring",
          "locationName": "PageSize"
        }
      }
    },
    "ListConfigurationSetsResponse": {
      "type": "structure",
      "members": {
        "ConfigurationSets": {
          "shape": "ConfigurationSets"
        },
        "NextToken": {
          "shape": "NextTokenString"
        }
      }
    },
    "NextTokenString": {
      "type": "string"
    },
    "NonEmptyString": {
      "type": "string"
    },
    "NotFoundException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 404
      }
    },
    "PlainTextMessageType": {
      "type": "structure",
      "members": {
        "LanguageCode": {
          "shape": "String"
        },
        "Text": {
          "shape": "NonEmptyString"
        },
        "VoiceId": {
          "shape": "String"
        }
      },
      "required": []
    },
    "SSMLMessageType": {
      "type": "structure",
      "members": {
        "LanguageCode": {
          "shape": "String"
        },
        "Text": {
          "shape": "NonEmptyString"
        },
        "VoiceId": {
          "shape": "String"
        }
      },
      "required": []
    },
    "SendVoiceMessageRequest": {
      "type": "structure",
      "members": {
        "CallerId": {
          "shape": "String"
        },
        "ConfigurationSetName": {
          "shape": "WordCharactersWithDelimiters"
        },
        "Content": {
          "shape": "VoiceMessageContent"
        },
        "DestinationPhoneNumber": {
          "shape": "NonEmptyString"
        },
        "OriginationPhoneNumber": {
          "shape": "NonEmptyString"
        }
      }
    },
    "SendVoiceMessageResponse": {
      "type": "structure",
      "members": {
        "MessageId": {
          "shape": "String"
        }
      }
    },
    "SnsDestination": {
      "type": "structure",
      "members": {
        "TopicArn": {
          "shape": "String"
        }
      },
      "required": []
    },
    "String": {
      "type": "string"
    },
    "TooManyRequestsException": {
      "type": "structure",
      "members": {
        "Message": {
          "shape": "String"
        }
      },
      "exception": true,
      "error": {
        "httpStatusCode": 429
      }
    },
    "UpdateConfigurationSetEventDestinationRequest": {
      "type": "structure",
      "members": {
        "ConfigurationSetName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "ConfigurationSetName"
        },
        "EventDestination": {
          "shape": "EventDestinationDefinition"
        },
        "EventDestinationName": {
          "shape": "__string",
          "location": "uri",
          "locationName": "EventDestinationName"
        }
      },
      "required": [
        "EventDestinationName",
        "ConfigurationSetName"
      ]
    },
    "UpdateConfigurationSetEventDestinationResponse": {
      "type": "structure",
      "members": {}
    },
    "VoiceMessageContent": {
      "type": "structure",
      "members": {
        "CallInstructionsMessage": {
          "shape": "CallInstructionsMessageType"
        },
        "PlainTextMessage": {
          "shape": "PlainTextMessageType"
        },
        "SSMLMessage": {
          "shape": "SSMLMessageType"
        }
      }
    },
    "WordCharactersWithDelimiters": {
      "type": "string"
    },
    "__boolean": {
      "type": "boolean"
    },
    "__double": {
      "type": "double"
    },
    "__integer": {
      "type": "integer"
    },
    "__long": {
      "type": "long"
    },
    "__string": {
      "type": "string"
    },
    "__timestampIso8601": {
      "type": "timestamp",
      "timestampFormat": "iso8601"
    },
    "__timestampUnix": {
      "type": "timestamp",
      "timestampFormat": "unixTimestamp"
    }
  }
}