# frozen_string_literal: true

# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE


module Aws::ApplicationDiscoveryService
  # @api private
  module ClientApi

    include Seahorse::Model

    AgentConfigurationStatus = Shapes::StructureShape.new(name: 'AgentConfigurationStatus')
    AgentConfigurationStatusList = Shapes::ListShape.new(name: 'AgentConfigurationStatusList')
    AgentId = Shapes::StringShape.new(name: 'AgentId')
    AgentIds = Shapes::ListShape.new(name: 'AgentIds')
    AgentInfo = Shapes::StructureShape.new(name: 'AgentInfo')
    AgentNetworkInfo = Shapes::StructureShape.new(name: 'AgentNetworkInfo')
    AgentNetworkInfoList = Shapes::ListShape.new(name: 'AgentNetworkInfoList')
    AgentStatus = Shapes::StringShape.new(name: 'AgentStatus')
    AgentsInfo = Shapes::ListShape.new(name: 'AgentsInfo')
    ApplicationDescription = Shapes::StringShape.new(name: 'ApplicationDescription')
    ApplicationId = Shapes::StringShape.new(name: 'ApplicationId')
    ApplicationIdsList = Shapes::ListShape.new(name: 'ApplicationIdsList')
    ApplicationName = Shapes::StringShape.new(name: 'ApplicationName')
    ApplicationWave = Shapes::StringShape.new(name: 'ApplicationWave')
    AssociateConfigurationItemsToApplicationRequest = Shapes::StructureShape.new(name: 'AssociateConfigurationItemsToApplicationRequest')
    AssociateConfigurationItemsToApplicationResponse = Shapes::StructureShape.new(name: 'AssociateConfigurationItemsToApplicationResponse')
    AuthorizationErrorException = Shapes::StructureShape.new(name: 'AuthorizationErrorException')
    BatchDeleteAgentError = Shapes::StructureShape.new(name: 'BatchDeleteAgentError')
    BatchDeleteAgentErrors = Shapes::ListShape.new(name: 'BatchDeleteAgentErrors')
    BatchDeleteAgentsRequest = Shapes::StructureShape.new(name: 'BatchDeleteAgentsRequest')
    BatchDeleteAgentsResponse = Shapes::StructureShape.new(name: 'BatchDeleteAgentsResponse')
    BatchDeleteConfigurationTask = Shapes::StructureShape.new(name: 'BatchDeleteConfigurationTask')
    BatchDeleteConfigurationTaskStatus = Shapes::StringShape.new(name: 'BatchDeleteConfigurationTaskStatus')
    BatchDeleteImportDataError = Shapes::StructureShape.new(name: 'BatchDeleteImportDataError')
    BatchDeleteImportDataErrorCode = Shapes::StringShape.new(name: 'BatchDeleteImportDataErrorCode')
    BatchDeleteImportDataErrorDescription = Shapes::StringShape.new(name: 'BatchDeleteImportDataErrorDescription')
    BatchDeleteImportDataErrorList = Shapes::ListShape.new(name: 'BatchDeleteImportDataErrorList')
    BatchDeleteImportDataRequest = Shapes::StructureShape.new(name: 'BatchDeleteImportDataRequest')
    BatchDeleteImportDataResponse = Shapes::StructureShape.new(name: 'BatchDeleteImportDataResponse')
    Boolean = Shapes::BooleanShape.new(name: 'Boolean')
    BoxedInteger = Shapes::IntegerShape.new(name: 'BoxedInteger')
    ClientRequestToken = Shapes::StringShape.new(name: 'ClientRequestToken')
    Condition = Shapes::StringShape.new(name: 'Condition')
    Configuration = Shapes::MapShape.new(name: 'Configuration')
    ConfigurationId = Shapes::StringShape.new(name: 'ConfigurationId')
    ConfigurationIdList = Shapes::ListShape.new(name: 'ConfigurationIdList')
    ConfigurationItemType = Shapes::StringShape.new(name: 'ConfigurationItemType')
    ConfigurationTag = Shapes::StructureShape.new(name: 'ConfigurationTag')
    ConfigurationTagSet = Shapes::ListShape.new(name: 'ConfigurationTagSet')
    Configurations = Shapes::ListShape.new(name: 'Configurations')
    ConfigurationsDownloadUrl = Shapes::StringShape.new(name: 'ConfigurationsDownloadUrl')
    ConfigurationsExportId = Shapes::StringShape.new(name: 'ConfigurationsExportId')
    ConflictErrorException = Shapes::StructureShape.new(name: 'ConflictErrorException')
    ContinuousExportDescription = Shapes::StructureShape.new(name: 'ContinuousExportDescription')
    ContinuousExportDescriptions = Shapes::ListShape.new(name: 'ContinuousExportDescriptions')
    ContinuousExportIds = Shapes::ListShape.new(name: 'ContinuousExportIds')
    ContinuousExportStatus = Shapes::StringShape.new(name: 'ContinuousExportStatus')
    CreateApplicationRequest = Shapes::StructureShape.new(name: 'CreateApplicationRequest')
    CreateApplicationResponse = Shapes::StructureShape.new(name: 'CreateApplicationResponse')
    CreateTagsRequest = Shapes::StructureShape.new(name: 'CreateTagsRequest')
    CreateTagsResponse = Shapes::StructureShape.new(name: 'CreateTagsResponse')
    CustomerAgentInfo = Shapes::StructureShape.new(name: 'CustomerAgentInfo')
    CustomerAgentlessCollectorInfo = Shapes::StructureShape.new(name: 'CustomerAgentlessCollectorInfo')
    CustomerConnectorInfo = Shapes::StructureShape.new(name: 'CustomerConnectorInfo')
    CustomerMeCollectorInfo = Shapes::StructureShape.new(name: 'CustomerMeCollectorInfo')
    DataSource = Shapes::StringShape.new(name: 'DataSource')
    DatabaseName = Shapes::StringShape.new(name: 'DatabaseName')
    DeleteAgent = Shapes::StructureShape.new(name: 'DeleteAgent')
    DeleteAgentErrorCode = Shapes::StringShape.new(name: 'DeleteAgentErrorCode')
    DeleteAgents = Shapes::ListShape.new(name: 'DeleteAgents')
    DeleteApplicationsRequest = Shapes::StructureShape.new(name: 'DeleteApplicationsRequest')
    DeleteApplicationsResponse = Shapes::StructureShape.new(name: 'DeleteApplicationsResponse')
    DeleteTagsRequest = Shapes::StructureShape.new(name: 'DeleteTagsRequest')
    DeleteTagsResponse = Shapes::StructureShape.new(name: 'DeleteTagsResponse')
    DeletionConfigurationItemType = Shapes::StringShape.new(name: 'DeletionConfigurationItemType')
    DeletionWarning = Shapes::StructureShape.new(name: 'DeletionWarning')
    DeletionWarningsList = Shapes::ListShape.new(name: 'DeletionWarningsList')
    DescribeAgentsRequest = Shapes::StructureShape.new(name: 'DescribeAgentsRequest')
    DescribeAgentsResponse = Shapes::StructureShape.new(name: 'DescribeAgentsResponse')
    DescribeBatchDeleteConfigurationTaskRequest = Shapes::StructureShape.new(name: 'DescribeBatchDeleteConfigurationTaskRequest')
    DescribeBatchDeleteConfigurationTaskResponse = Shapes::StructureShape.new(name: 'DescribeBatchDeleteConfigurationTaskResponse')
    DescribeConfigurationsAttribute = Shapes::MapShape.new(name: 'DescribeConfigurationsAttribute')
    DescribeConfigurationsAttributes = Shapes::ListShape.new(name: 'DescribeConfigurationsAttributes')
    DescribeConfigurationsRequest = Shapes::StructureShape.new(name: 'DescribeConfigurationsRequest')
    DescribeConfigurationsResponse = Shapes::StructureShape.new(name: 'DescribeConfigurationsResponse')
    DescribeContinuousExportsMaxResults = Shapes::IntegerShape.new(name: 'DescribeContinuousExportsMaxResults')
    DescribeContinuousExportsRequest = Shapes::StructureShape.new(name: 'DescribeContinuousExportsRequest')
    DescribeContinuousExportsResponse = Shapes::StructureShape.new(name: 'DescribeContinuousExportsResponse')
    DescribeExportConfigurationsRequest = Shapes::StructureShape.new(name: 'DescribeExportConfigurationsRequest')
    DescribeExportConfigurationsResponse = Shapes::StructureShape.new(name: 'DescribeExportConfigurationsResponse')
    DescribeExportTasksRequest = Shapes::StructureShape.new(name: 'DescribeExportTasksRequest')
    DescribeExportTasksResponse = Shapes::StructureShape.new(name: 'DescribeExportTasksResponse')
    DescribeImportTasksFilterList = Shapes::ListShape.new(name: 'DescribeImportTasksFilterList')
    DescribeImportTasksMaxResults = Shapes::IntegerShape.new(name: 'DescribeImportTasksMaxResults')
    DescribeImportTasksRequest = Shapes::StructureShape.new(name: 'DescribeImportTasksRequest')
    DescribeImportTasksResponse = Shapes::StructureShape.new(name: 'DescribeImportTasksResponse')
    DescribeTagsRequest = Shapes::StructureShape.new(name: 'DescribeTagsRequest')
    DescribeTagsResponse = Shapes::StructureShape.new(name: 'DescribeTagsResponse')
    DisassociateConfigurationItemsFromApplicationRequest = Shapes::StructureShape.new(name: 'DisassociateConfigurationItemsFromApplicationRequest')
    DisassociateConfigurationItemsFromApplicationResponse = Shapes::StructureShape.new(name: 'DisassociateConfigurationItemsFromApplicationResponse')
    EC2InstanceType = Shapes::StringShape.new(name: 'EC2InstanceType')
    Ec2RecommendationsExportPreferences = Shapes::StructureShape.new(name: 'Ec2RecommendationsExportPreferences')
    ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
    ErrorStatusCode = Shapes::IntegerShape.new(name: 'ErrorStatusCode')
    ExcludedInstanceTypes = Shapes::ListShape.new(name: 'ExcludedInstanceTypes')
    ExportConfigurationsResponse = Shapes::StructureShape.new(name: 'ExportConfigurationsResponse')
    ExportDataFormat = Shapes::StringShape.new(name: 'ExportDataFormat')
    ExportDataFormats = Shapes::ListShape.new(name: 'ExportDataFormats')
    ExportEnabled = Shapes::BooleanShape.new(name: 'ExportEnabled')
    ExportFilter = Shapes::StructureShape.new(name: 'ExportFilter')
    ExportFilters = Shapes::ListShape.new(name: 'ExportFilters')
    ExportIds = Shapes::ListShape.new(name: 'ExportIds')
    ExportInfo = Shapes::StructureShape.new(name: 'ExportInfo')
    ExportPreferences = Shapes::UnionShape.new(name: 'ExportPreferences')
    ExportRequestTime = Shapes::TimestampShape.new(name: 'ExportRequestTime')
    ExportStatus = Shapes::StringShape.new(name: 'ExportStatus')
    ExportStatusMessage = Shapes::StringShape.new(name: 'ExportStatusMessage')
    ExportsInfo = Shapes::ListShape.new(name: 'ExportsInfo')
    FailedConfiguration = Shapes::StructureShape.new(name: 'FailedConfiguration')
    FailedConfigurationList = Shapes::ListShape.new(name: 'FailedConfigurationList')
    FileClassification = Shapes::StringShape.new(name: 'FileClassification')
    Filter = Shapes::StructureShape.new(name: 'Filter')
    FilterName = Shapes::StringShape.new(name: 'FilterName')
    FilterValue = Shapes::StringShape.new(name: 'FilterValue')
    FilterValues = Shapes::ListShape.new(name: 'FilterValues')
    Filters = Shapes::ListShape.new(name: 'Filters')
    GetDiscoverySummaryRequest = Shapes::StructureShape.new(name: 'GetDiscoverySummaryRequest')
    GetDiscoverySummaryResponse = Shapes::StructureShape.new(name: 'GetDiscoverySummaryResponse')
    HomeRegionNotSetException = Shapes::StructureShape.new(name: 'HomeRegionNotSetException')
    ImportStatus = Shapes::StringShape.new(name: 'ImportStatus')
    ImportTask = Shapes::StructureShape.new(name: 'ImportTask')
    ImportTaskFilter = Shapes::StructureShape.new(name: 'ImportTaskFilter')
    ImportTaskFilterName = Shapes::StringShape.new(name: 'ImportTaskFilterName')
    ImportTaskFilterValue = Shapes::StringShape.new(name: 'ImportTaskFilterValue')
    ImportTaskFilterValueList = Shapes::ListShape.new(name: 'ImportTaskFilterValueList')
    ImportTaskIdentifier = Shapes::StringShape.new(name: 'ImportTaskIdentifier')
    ImportTaskList = Shapes::ListShape.new(name: 'ImportTaskList')
    ImportTaskName = Shapes::StringShape.new(name: 'ImportTaskName')
    ImportURL = Shapes::StringShape.new(name: 'ImportURL')
    Integer = Shapes::IntegerShape.new(name: 'Integer')
    InvalidParameterException = Shapes::StructureShape.new(name: 'InvalidParameterException')
    InvalidParameterValueException = Shapes::StructureShape.new(name: 'InvalidParameterValueException')
    LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
    ListConfigurationsRequest = Shapes::StructureShape.new(name: 'ListConfigurationsRequest')
    ListConfigurationsResponse = Shapes::StructureShape.new(name: 'ListConfigurationsResponse')
    ListServerNeighborsRequest = Shapes::StructureShape.new(name: 'ListServerNeighborsRequest')
    ListServerNeighborsResponse = Shapes::StructureShape.new(name: 'ListServerNeighborsResponse')
    Long = Shapes::IntegerShape.new(name: 'Long')
    Message = Shapes::StringShape.new(name: 'Message')
    NeighborConnectionDetail = Shapes::StructureShape.new(name: 'NeighborConnectionDetail')
    NeighborDetailsList = Shapes::ListShape.new(name: 'NeighborDetailsList')
    NextToken = Shapes::StringShape.new(name: 'NextToken')
    OfferingClass = Shapes::StringShape.new(name: 'OfferingClass')
    OperationNotPermittedException = Shapes::StructureShape.new(name: 'OperationNotPermittedException')
    OrderByElement = Shapes::StructureShape.new(name: 'OrderByElement')
    OrderByElementFieldName = Shapes::StringShape.new(name: 'OrderByElementFieldName')
    OrderByList = Shapes::ListShape.new(name: 'OrderByList')
    PurchasingOption = Shapes::StringShape.new(name: 'PurchasingOption')
    ReservedInstanceOptions = Shapes::StructureShape.new(name: 'ReservedInstanceOptions')
    ResourceInUseException = Shapes::StructureShape.new(name: 'ResourceInUseException')
    ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
    S3Bucket = Shapes::StringShape.new(name: 'S3Bucket')
    S3PresignedUrl = Shapes::StringShape.new(name: 'S3PresignedUrl')
    SchemaStorageConfig = Shapes::MapShape.new(name: 'SchemaStorageConfig')
    ServerInternalErrorException = Shapes::StructureShape.new(name: 'ServerInternalErrorException')
    StartBatchDeleteConfigurationTaskRequest = Shapes::StructureShape.new(name: 'StartBatchDeleteConfigurationTaskRequest')
    StartBatchDeleteConfigurationTaskResponse = Shapes::StructureShape.new(name: 'StartBatchDeleteConfigurationTaskResponse')
    StartContinuousExportRequest = Shapes::StructureShape.new(name: 'StartContinuousExportRequest')
    StartContinuousExportResponse = Shapes::StructureShape.new(name: 'StartContinuousExportResponse')
    StartDataCollectionByAgentIdsRequest = Shapes::StructureShape.new(name: 'StartDataCollectionByAgentIdsRequest')
    StartDataCollectionByAgentIdsResponse = Shapes::StructureShape.new(name: 'StartDataCollectionByAgentIdsResponse')
    StartExportTaskRequest = Shapes::StructureShape.new(name: 'StartExportTaskRequest')
    StartExportTaskResponse = Shapes::StructureShape.new(name: 'StartExportTaskResponse')
    StartImportTaskRequest = Shapes::StructureShape.new(name: 'StartImportTaskRequest')
    StartImportTaskResponse = Shapes::StructureShape.new(name: 'StartImportTaskResponse')
    StopContinuousExportRequest = Shapes::StructureShape.new(name: 'StopContinuousExportRequest')
    StopContinuousExportResponse = Shapes::StructureShape.new(name: 'StopContinuousExportResponse')
    StopDataCollectionByAgentIdsRequest = Shapes::StructureShape.new(name: 'StopDataCollectionByAgentIdsRequest')
    StopDataCollectionByAgentIdsResponse = Shapes::StructureShape.new(name: 'StopDataCollectionByAgentIdsResponse')
    String = Shapes::StringShape.new(name: 'String')
    StringMax255 = Shapes::StringShape.new(name: 'StringMax255')
    Tag = Shapes::StructureShape.new(name: 'Tag')
    TagFilter = Shapes::StructureShape.new(name: 'TagFilter')
    TagFilters = Shapes::ListShape.new(name: 'TagFilters')
    TagKey = Shapes::StringShape.new(name: 'TagKey')
    TagSet = Shapes::ListShape.new(name: 'TagSet')
    TagValue = Shapes::StringShape.new(name: 'TagValue')
    Tenancy = Shapes::StringShape.new(name: 'Tenancy')
    TermLength = Shapes::StringShape.new(name: 'TermLength')
    TimeStamp = Shapes::TimestampShape.new(name: 'TimeStamp')
    ToDeleteIdentifierList = Shapes::ListShape.new(name: 'ToDeleteIdentifierList')
    UUID = Shapes::StringShape.new(name: 'UUID')
    UpdateApplicationRequest = Shapes::StructureShape.new(name: 'UpdateApplicationRequest')
    UpdateApplicationResponse = Shapes::StructureShape.new(name: 'UpdateApplicationResponse')
    UsageMetricBasis = Shapes::StructureShape.new(name: 'UsageMetricBasis')
    UsageMetricBasisName = Shapes::StringShape.new(name: 'UsageMetricBasisName')
    UsageMetricPercentageAdjust = Shapes::FloatShape.new(name: 'UsageMetricPercentageAdjust')
    UserPreferredRegion = Shapes::StringShape.new(name: 'UserPreferredRegion')
    WarningCode = Shapes::IntegerShape.new(name: 'WarningCode')
    WarningText = Shapes::StringShape.new(name: 'WarningText')
    orderString = Shapes::StringShape.new(name: 'orderString')

    AgentConfigurationStatus.add_member(:agent_id, Shapes::ShapeRef.new(shape: String, location_name: "agentId"))
    AgentConfigurationStatus.add_member(:operation_succeeded, Shapes::ShapeRef.new(shape: Boolean, location_name: "operationSucceeded"))
    AgentConfigurationStatus.add_member(:description, Shapes::ShapeRef.new(shape: String, location_name: "description"))
    AgentConfigurationStatus.struct_class = Types::AgentConfigurationStatus

    AgentConfigurationStatusList.member = Shapes::ShapeRef.new(shape: AgentConfigurationStatus)

    AgentIds.member = Shapes::ShapeRef.new(shape: AgentId)

    AgentInfo.add_member(:agent_id, Shapes::ShapeRef.new(shape: AgentId, location_name: "agentId"))
    AgentInfo.add_member(:host_name, Shapes::ShapeRef.new(shape: String, location_name: "hostName"))
    AgentInfo.add_member(:agent_network_info_list, Shapes::ShapeRef.new(shape: AgentNetworkInfoList, location_name: "agentNetworkInfoList"))
    AgentInfo.add_member(:connector_id, Shapes::ShapeRef.new(shape: String, location_name: "connectorId"))
    AgentInfo.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
    AgentInfo.add_member(:health, Shapes::ShapeRef.new(shape: AgentStatus, location_name: "health"))
    AgentInfo.add_member(:last_health_ping_time, Shapes::ShapeRef.new(shape: String, location_name: "lastHealthPingTime"))
    AgentInfo.add_member(:collection_status, Shapes::ShapeRef.new(shape: String, location_name: "collectionStatus"))
    AgentInfo.add_member(:agent_type, Shapes::ShapeRef.new(shape: String, location_name: "agentType"))
    AgentInfo.add_member(:registered_time, Shapes::ShapeRef.new(shape: String, location_name: "registeredTime"))
    AgentInfo.struct_class = Types::AgentInfo

    AgentNetworkInfo.add_member(:ip_address, Shapes::ShapeRef.new(shape: String, location_name: "ipAddress"))
    AgentNetworkInfo.add_member(:mac_address, Shapes::ShapeRef.new(shape: String, location_name: "macAddress"))
    AgentNetworkInfo.struct_class = Types::AgentNetworkInfo

    AgentNetworkInfoList.member = Shapes::ShapeRef.new(shape: AgentNetworkInfo)

    AgentsInfo.member = Shapes::ShapeRef.new(shape: AgentInfo)

    ApplicationIdsList.member = Shapes::ShapeRef.new(shape: ApplicationId)

    AssociateConfigurationItemsToApplicationRequest.add_member(:application_configuration_id, Shapes::ShapeRef.new(shape: ApplicationId, required: true, location_name: "applicationConfigurationId"))
    AssociateConfigurationItemsToApplicationRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    AssociateConfigurationItemsToApplicationRequest.struct_class = Types::AssociateConfigurationItemsToApplicationRequest

    AssociateConfigurationItemsToApplicationResponse.struct_class = Types::AssociateConfigurationItemsToApplicationResponse

    AuthorizationErrorException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    AuthorizationErrorException.struct_class = Types::AuthorizationErrorException

    BatchDeleteAgentError.add_member(:agent_id, Shapes::ShapeRef.new(shape: AgentId, required: true, location_name: "agentId"))
    BatchDeleteAgentError.add_member(:error_message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "errorMessage"))
    BatchDeleteAgentError.add_member(:error_code, Shapes::ShapeRef.new(shape: DeleteAgentErrorCode, required: true, location_name: "errorCode"))
    BatchDeleteAgentError.struct_class = Types::BatchDeleteAgentError

    BatchDeleteAgentErrors.member = Shapes::ShapeRef.new(shape: BatchDeleteAgentError)

    BatchDeleteAgentsRequest.add_member(:delete_agents, Shapes::ShapeRef.new(shape: DeleteAgents, required: true, location_name: "deleteAgents"))
    BatchDeleteAgentsRequest.struct_class = Types::BatchDeleteAgentsRequest

    BatchDeleteAgentsResponse.add_member(:errors, Shapes::ShapeRef.new(shape: BatchDeleteAgentErrors, location_name: "errors"))
    BatchDeleteAgentsResponse.struct_class = Types::BatchDeleteAgentsResponse

    BatchDeleteConfigurationTask.add_member(:task_id, Shapes::ShapeRef.new(shape: UUID, location_name: "taskId"))
    BatchDeleteConfigurationTask.add_member(:status, Shapes::ShapeRef.new(shape: BatchDeleteConfigurationTaskStatus, location_name: "status"))
    BatchDeleteConfigurationTask.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "startTime"))
    BatchDeleteConfigurationTask.add_member(:end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "endTime"))
    BatchDeleteConfigurationTask.add_member(:configuration_type, Shapes::ShapeRef.new(shape: DeletionConfigurationItemType, location_name: "configurationType"))
    BatchDeleteConfigurationTask.add_member(:requested_configurations, Shapes::ShapeRef.new(shape: ConfigurationIdList, location_name: "requestedConfigurations"))
    BatchDeleteConfigurationTask.add_member(:deleted_configurations, Shapes::ShapeRef.new(shape: ConfigurationIdList, location_name: "deletedConfigurations"))
    BatchDeleteConfigurationTask.add_member(:failed_configurations, Shapes::ShapeRef.new(shape: FailedConfigurationList, location_name: "failedConfigurations"))
    BatchDeleteConfigurationTask.add_member(:deletion_warnings, Shapes::ShapeRef.new(shape: DeletionWarningsList, location_name: "deletionWarnings"))
    BatchDeleteConfigurationTask.struct_class = Types::BatchDeleteConfigurationTask

    BatchDeleteImportDataError.add_member(:import_task_id, Shapes::ShapeRef.new(shape: ImportTaskIdentifier, location_name: "importTaskId"))
    BatchDeleteImportDataError.add_member(:error_code, Shapes::ShapeRef.new(shape: BatchDeleteImportDataErrorCode, location_name: "errorCode"))
    BatchDeleteImportDataError.add_member(:error_description, Shapes::ShapeRef.new(shape: BatchDeleteImportDataErrorDescription, location_name: "errorDescription"))
    BatchDeleteImportDataError.struct_class = Types::BatchDeleteImportDataError

    BatchDeleteImportDataErrorList.member = Shapes::ShapeRef.new(shape: BatchDeleteImportDataError)

    BatchDeleteImportDataRequest.add_member(:import_task_ids, Shapes::ShapeRef.new(shape: ToDeleteIdentifierList, required: true, location_name: "importTaskIds"))
    BatchDeleteImportDataRequest.add_member(:delete_history, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteHistory"))
    BatchDeleteImportDataRequest.struct_class = Types::BatchDeleteImportDataRequest

    BatchDeleteImportDataResponse.add_member(:errors, Shapes::ShapeRef.new(shape: BatchDeleteImportDataErrorList, location_name: "errors"))
    BatchDeleteImportDataResponse.struct_class = Types::BatchDeleteImportDataResponse

    Configuration.key = Shapes::ShapeRef.new(shape: String)
    Configuration.value = Shapes::ShapeRef.new(shape: String)

    ConfigurationIdList.member = Shapes::ShapeRef.new(shape: ConfigurationId)

    ConfigurationTag.add_member(:configuration_type, Shapes::ShapeRef.new(shape: ConfigurationItemType, location_name: "configurationType"))
    ConfigurationTag.add_member(:configuration_id, Shapes::ShapeRef.new(shape: ConfigurationId, location_name: "configurationId"))
    ConfigurationTag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "key"))
    ConfigurationTag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, location_name: "value"))
    ConfigurationTag.add_member(:time_of_creation, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "timeOfCreation"))
    ConfigurationTag.struct_class = Types::ConfigurationTag

    ConfigurationTagSet.member = Shapes::ShapeRef.new(shape: ConfigurationTag)

    Configurations.member = Shapes::ShapeRef.new(shape: Configuration)

    ConflictErrorException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    ConflictErrorException.struct_class = Types::ConflictErrorException

    ContinuousExportDescription.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, location_name: "exportId"))
    ContinuousExportDescription.add_member(:status, Shapes::ShapeRef.new(shape: ContinuousExportStatus, location_name: "status"))
    ContinuousExportDescription.add_member(:status_detail, Shapes::ShapeRef.new(shape: StringMax255, location_name: "statusDetail"))
    ContinuousExportDescription.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: S3Bucket, location_name: "s3Bucket"))
    ContinuousExportDescription.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "startTime"))
    ContinuousExportDescription.add_member(:stop_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "stopTime"))
    ContinuousExportDescription.add_member(:data_source, Shapes::ShapeRef.new(shape: DataSource, location_name: "dataSource"))
    ContinuousExportDescription.add_member(:schema_storage_config, Shapes::ShapeRef.new(shape: SchemaStorageConfig, location_name: "schemaStorageConfig"))
    ContinuousExportDescription.struct_class = Types::ContinuousExportDescription

    ContinuousExportDescriptions.member = Shapes::ShapeRef.new(shape: ContinuousExportDescription)

    ContinuousExportIds.member = Shapes::ShapeRef.new(shape: ConfigurationsExportId)

    CreateApplicationRequest.add_member(:name, Shapes::ShapeRef.new(shape: ApplicationName, required: true, location_name: "name"))
    CreateApplicationRequest.add_member(:description, Shapes::ShapeRef.new(shape: ApplicationDescription, location_name: "description"))
    CreateApplicationRequest.add_member(:wave, Shapes::ShapeRef.new(shape: ApplicationWave, location_name: "wave"))
    CreateApplicationRequest.struct_class = Types::CreateApplicationRequest

    CreateApplicationResponse.add_member(:configuration_id, Shapes::ShapeRef.new(shape: String, location_name: "configurationId"))
    CreateApplicationResponse.struct_class = Types::CreateApplicationResponse

    CreateTagsRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    CreateTagsRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagSet, required: true, location_name: "tags"))
    CreateTagsRequest.struct_class = Types::CreateTagsRequest

    CreateTagsResponse.struct_class = Types::CreateTagsResponse

    CustomerAgentInfo.add_member(:active_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "activeAgents"))
    CustomerAgentInfo.add_member(:healthy_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "healthyAgents"))
    CustomerAgentInfo.add_member(:black_listed_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "blackListedAgents"))
    CustomerAgentInfo.add_member(:shutdown_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "shutdownAgents"))
    CustomerAgentInfo.add_member(:unhealthy_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unhealthyAgents"))
    CustomerAgentInfo.add_member(:total_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "totalAgents"))
    CustomerAgentInfo.add_member(:unknown_agents, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unknownAgents"))
    CustomerAgentInfo.struct_class = Types::CustomerAgentInfo

    CustomerAgentlessCollectorInfo.add_member(:active_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "activeAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:healthy_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "healthyAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:deny_listed_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "denyListedAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:shutdown_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "shutdownAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:unhealthy_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unhealthyAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:total_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "totalAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.add_member(:unknown_agentless_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unknownAgentlessCollectors"))
    CustomerAgentlessCollectorInfo.struct_class = Types::CustomerAgentlessCollectorInfo

    CustomerConnectorInfo.add_member(:active_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "activeConnectors"))
    CustomerConnectorInfo.add_member(:healthy_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "healthyConnectors"))
    CustomerConnectorInfo.add_member(:black_listed_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "blackListedConnectors"))
    CustomerConnectorInfo.add_member(:shutdown_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "shutdownConnectors"))
    CustomerConnectorInfo.add_member(:unhealthy_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unhealthyConnectors"))
    CustomerConnectorInfo.add_member(:total_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "totalConnectors"))
    CustomerConnectorInfo.add_member(:unknown_connectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unknownConnectors"))
    CustomerConnectorInfo.struct_class = Types::CustomerConnectorInfo

    CustomerMeCollectorInfo.add_member(:active_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "activeMeCollectors"))
    CustomerMeCollectorInfo.add_member(:healthy_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "healthyMeCollectors"))
    CustomerMeCollectorInfo.add_member(:deny_listed_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "denyListedMeCollectors"))
    CustomerMeCollectorInfo.add_member(:shutdown_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "shutdownMeCollectors"))
    CustomerMeCollectorInfo.add_member(:unhealthy_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unhealthyMeCollectors"))
    CustomerMeCollectorInfo.add_member(:total_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "totalMeCollectors"))
    CustomerMeCollectorInfo.add_member(:unknown_me_collectors, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "unknownMeCollectors"))
    CustomerMeCollectorInfo.struct_class = Types::CustomerMeCollectorInfo

    DeleteAgent.add_member(:agent_id, Shapes::ShapeRef.new(shape: AgentId, required: true, location_name: "agentId"))
    DeleteAgent.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "force"))
    DeleteAgent.struct_class = Types::DeleteAgent

    DeleteAgents.member = Shapes::ShapeRef.new(shape: DeleteAgent)

    DeleteApplicationsRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ApplicationIdsList, required: true, location_name: "configurationIds"))
    DeleteApplicationsRequest.struct_class = Types::DeleteApplicationsRequest

    DeleteApplicationsResponse.struct_class = Types::DeleteApplicationsResponse

    DeleteTagsRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    DeleteTagsRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagSet, location_name: "tags"))
    DeleteTagsRequest.struct_class = Types::DeleteTagsRequest

    DeleteTagsResponse.struct_class = Types::DeleteTagsResponse

    DeletionWarning.add_member(:configuration_id, Shapes::ShapeRef.new(shape: ConfigurationId, location_name: "configurationId"))
    DeletionWarning.add_member(:warning_code, Shapes::ShapeRef.new(shape: WarningCode, location_name: "warningCode"))
    DeletionWarning.add_member(:warning_text, Shapes::ShapeRef.new(shape: WarningText, location_name: "warningText"))
    DeletionWarning.struct_class = Types::DeletionWarning

    DeletionWarningsList.member = Shapes::ShapeRef.new(shape: DeletionWarning)

    DescribeAgentsRequest.add_member(:agent_ids, Shapes::ShapeRef.new(shape: AgentIds, location_name: "agentIds"))
    DescribeAgentsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: Filters, location_name: "filters"))
    DescribeAgentsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeAgentsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeAgentsRequest.struct_class = Types::DescribeAgentsRequest

    DescribeAgentsResponse.add_member(:agents_info, Shapes::ShapeRef.new(shape: AgentsInfo, location_name: "agentsInfo"))
    DescribeAgentsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeAgentsResponse.struct_class = Types::DescribeAgentsResponse

    DescribeBatchDeleteConfigurationTaskRequest.add_member(:task_id, Shapes::ShapeRef.new(shape: UUID, required: true, location_name: "taskId"))
    DescribeBatchDeleteConfigurationTaskRequest.struct_class = Types::DescribeBatchDeleteConfigurationTaskRequest

    DescribeBatchDeleteConfigurationTaskResponse.add_member(:task, Shapes::ShapeRef.new(shape: BatchDeleteConfigurationTask, location_name: "task"))
    DescribeBatchDeleteConfigurationTaskResponse.struct_class = Types::DescribeBatchDeleteConfigurationTaskResponse

    DescribeConfigurationsAttribute.key = Shapes::ShapeRef.new(shape: String)
    DescribeConfigurationsAttribute.value = Shapes::ShapeRef.new(shape: String)

    DescribeConfigurationsAttributes.member = Shapes::ShapeRef.new(shape: DescribeConfigurationsAttribute)

    DescribeConfigurationsRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    DescribeConfigurationsRequest.struct_class = Types::DescribeConfigurationsRequest

    DescribeConfigurationsResponse.add_member(:configurations, Shapes::ShapeRef.new(shape: DescribeConfigurationsAttributes, location_name: "configurations"))
    DescribeConfigurationsResponse.struct_class = Types::DescribeConfigurationsResponse

    DescribeContinuousExportsRequest.add_member(:export_ids, Shapes::ShapeRef.new(shape: ContinuousExportIds, location_name: "exportIds"))
    DescribeContinuousExportsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeContinuousExportsMaxResults, location_name: "maxResults"))
    DescribeContinuousExportsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeContinuousExportsRequest.struct_class = Types::DescribeContinuousExportsRequest

    DescribeContinuousExportsResponse.add_member(:descriptions, Shapes::ShapeRef.new(shape: ContinuousExportDescriptions, location_name: "descriptions"))
    DescribeContinuousExportsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeContinuousExportsResponse.struct_class = Types::DescribeContinuousExportsResponse

    DescribeExportConfigurationsRequest.add_member(:export_ids, Shapes::ShapeRef.new(shape: ExportIds, location_name: "exportIds"))
    DescribeExportConfigurationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeExportConfigurationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeExportConfigurationsRequest.struct_class = Types::DescribeExportConfigurationsRequest

    DescribeExportConfigurationsResponse.add_member(:exports_info, Shapes::ShapeRef.new(shape: ExportsInfo, location_name: "exportsInfo"))
    DescribeExportConfigurationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeExportConfigurationsResponse.struct_class = Types::DescribeExportConfigurationsResponse

    DescribeExportTasksRequest.add_member(:export_ids, Shapes::ShapeRef.new(shape: ExportIds, location_name: "exportIds"))
    DescribeExportTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: ExportFilters, location_name: "filters"))
    DescribeExportTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeExportTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeExportTasksRequest.struct_class = Types::DescribeExportTasksRequest

    DescribeExportTasksResponse.add_member(:exports_info, Shapes::ShapeRef.new(shape: ExportsInfo, location_name: "exportsInfo"))
    DescribeExportTasksResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeExportTasksResponse.struct_class = Types::DescribeExportTasksResponse

    DescribeImportTasksFilterList.member = Shapes::ShapeRef.new(shape: ImportTaskFilter)

    DescribeImportTasksRequest.add_member(:filters, Shapes::ShapeRef.new(shape: DescribeImportTasksFilterList, location_name: "filters"))
    DescribeImportTasksRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeImportTasksMaxResults, location_name: "maxResults"))
    DescribeImportTasksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeImportTasksRequest.struct_class = Types::DescribeImportTasksRequest

    DescribeImportTasksResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeImportTasksResponse.add_member(:tasks, Shapes::ShapeRef.new(shape: ImportTaskList, location_name: "tasks"))
    DescribeImportTasksResponse.struct_class = Types::DescribeImportTasksResponse

    DescribeTagsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: TagFilters, location_name: "filters"))
    DescribeTagsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    DescribeTagsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeTagsRequest.struct_class = Types::DescribeTagsRequest

    DescribeTagsResponse.add_member(:tags, Shapes::ShapeRef.new(shape: ConfigurationTagSet, location_name: "tags"))
    DescribeTagsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    DescribeTagsResponse.struct_class = Types::DescribeTagsResponse

    DisassociateConfigurationItemsFromApplicationRequest.add_member(:application_configuration_id, Shapes::ShapeRef.new(shape: ApplicationId, required: true, location_name: "applicationConfigurationId"))
    DisassociateConfigurationItemsFromApplicationRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    DisassociateConfigurationItemsFromApplicationRequest.struct_class = Types::DisassociateConfigurationItemsFromApplicationRequest

    DisassociateConfigurationItemsFromApplicationResponse.struct_class = Types::DisassociateConfigurationItemsFromApplicationResponse

    Ec2RecommendationsExportPreferences.add_member(:enabled, Shapes::ShapeRef.new(shape: ExportEnabled, location_name: "enabled"))
    Ec2RecommendationsExportPreferences.add_member(:cpu_performance_metric_basis, Shapes::ShapeRef.new(shape: UsageMetricBasis, location_name: "cpuPerformanceMetricBasis"))
    Ec2RecommendationsExportPreferences.add_member(:ram_performance_metric_basis, Shapes::ShapeRef.new(shape: UsageMetricBasis, location_name: "ramPerformanceMetricBasis"))
    Ec2RecommendationsExportPreferences.add_member(:tenancy, Shapes::ShapeRef.new(shape: Tenancy, location_name: "tenancy"))
    Ec2RecommendationsExportPreferences.add_member(:excluded_instance_types, Shapes::ShapeRef.new(shape: ExcludedInstanceTypes, location_name: "excludedInstanceTypes"))
    Ec2RecommendationsExportPreferences.add_member(:preferred_region, Shapes::ShapeRef.new(shape: UserPreferredRegion, location_name: "preferredRegion"))
    Ec2RecommendationsExportPreferences.add_member(:reserved_instance_options, Shapes::ShapeRef.new(shape: ReservedInstanceOptions, location_name: "reservedInstanceOptions"))
    Ec2RecommendationsExportPreferences.struct_class = Types::Ec2RecommendationsExportPreferences

    ExcludedInstanceTypes.member = Shapes::ShapeRef.new(shape: EC2InstanceType)

    ExportConfigurationsResponse.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, location_name: "exportId"))
    ExportConfigurationsResponse.struct_class = Types::ExportConfigurationsResponse

    ExportDataFormats.member = Shapes::ShapeRef.new(shape: ExportDataFormat)

    ExportFilter.add_member(:name, Shapes::ShapeRef.new(shape: FilterName, required: true, location_name: "name"))
    ExportFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, required: true, location_name: "values"))
    ExportFilter.add_member(:condition, Shapes::ShapeRef.new(shape: Condition, required: true, location_name: "condition"))
    ExportFilter.struct_class = Types::ExportFilter

    ExportFilters.member = Shapes::ShapeRef.new(shape: ExportFilter)

    ExportIds.member = Shapes::ShapeRef.new(shape: ConfigurationsExportId)

    ExportInfo.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, required: true, location_name: "exportId"))
    ExportInfo.add_member(:export_status, Shapes::ShapeRef.new(shape: ExportStatus, required: true, location_name: "exportStatus"))
    ExportInfo.add_member(:status_message, Shapes::ShapeRef.new(shape: ExportStatusMessage, required: true, location_name: "statusMessage"))
    ExportInfo.add_member(:configurations_download_url, Shapes::ShapeRef.new(shape: ConfigurationsDownloadUrl, location_name: "configurationsDownloadUrl"))
    ExportInfo.add_member(:export_request_time, Shapes::ShapeRef.new(shape: ExportRequestTime, required: true, location_name: "exportRequestTime"))
    ExportInfo.add_member(:is_truncated, Shapes::ShapeRef.new(shape: Boolean, location_name: "isTruncated"))
    ExportInfo.add_member(:requested_start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "requestedStartTime"))
    ExportInfo.add_member(:requested_end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "requestedEndTime"))
    ExportInfo.struct_class = Types::ExportInfo

    ExportPreferences.add_member(:ec2_recommendations_preferences, Shapes::ShapeRef.new(shape: Ec2RecommendationsExportPreferences, location_name: "ec2RecommendationsPreferences"))
    ExportPreferences.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
    ExportPreferences.add_member_subclass(:ec2_recommendations_preferences, Types::ExportPreferences::Ec2RecommendationsPreferences)
    ExportPreferences.add_member_subclass(:unknown, Types::ExportPreferences::Unknown)
    ExportPreferences.struct_class = Types::ExportPreferences

    ExportsInfo.member = Shapes::ShapeRef.new(shape: ExportInfo)

    FailedConfiguration.add_member(:configuration_id, Shapes::ShapeRef.new(shape: ConfigurationId, location_name: "configurationId"))
    FailedConfiguration.add_member(:error_status_code, Shapes::ShapeRef.new(shape: ErrorStatusCode, location_name: "errorStatusCode"))
    FailedConfiguration.add_member(:error_message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "errorMessage"))
    FailedConfiguration.struct_class = Types::FailedConfiguration

    FailedConfigurationList.member = Shapes::ShapeRef.new(shape: FailedConfiguration)

    Filter.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
    Filter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, required: true, location_name: "values"))
    Filter.add_member(:condition, Shapes::ShapeRef.new(shape: Condition, required: true, location_name: "condition"))
    Filter.struct_class = Types::Filter

    FilterValues.member = Shapes::ShapeRef.new(shape: FilterValue)

    Filters.member = Shapes::ShapeRef.new(shape: Filter)

    GetDiscoverySummaryRequest.struct_class = Types::GetDiscoverySummaryRequest

    GetDiscoverySummaryResponse.add_member(:servers, Shapes::ShapeRef.new(shape: Long, location_name: "servers"))
    GetDiscoverySummaryResponse.add_member(:applications, Shapes::ShapeRef.new(shape: Long, location_name: "applications"))
    GetDiscoverySummaryResponse.add_member(:servers_mapped_to_applications, Shapes::ShapeRef.new(shape: Long, location_name: "serversMappedToApplications"))
    GetDiscoverySummaryResponse.add_member(:servers_mappedto_tags, Shapes::ShapeRef.new(shape: Long, location_name: "serversMappedtoTags"))
    GetDiscoverySummaryResponse.add_member(:agent_summary, Shapes::ShapeRef.new(shape: CustomerAgentInfo, location_name: "agentSummary"))
    GetDiscoverySummaryResponse.add_member(:connector_summary, Shapes::ShapeRef.new(shape: CustomerConnectorInfo, location_name: "connectorSummary"))
    GetDiscoverySummaryResponse.add_member(:me_collector_summary, Shapes::ShapeRef.new(shape: CustomerMeCollectorInfo, location_name: "meCollectorSummary"))
    GetDiscoverySummaryResponse.add_member(:agentless_collector_summary, Shapes::ShapeRef.new(shape: CustomerAgentlessCollectorInfo, location_name: "agentlessCollectorSummary"))
    GetDiscoverySummaryResponse.struct_class = Types::GetDiscoverySummaryResponse

    HomeRegionNotSetException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    HomeRegionNotSetException.struct_class = Types::HomeRegionNotSetException

    ImportTask.add_member(:import_task_id, Shapes::ShapeRef.new(shape: ImportTaskIdentifier, location_name: "importTaskId"))
    ImportTask.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "clientRequestToken"))
    ImportTask.add_member(:name, Shapes::ShapeRef.new(shape: ImportTaskName, location_name: "name"))
    ImportTask.add_member(:import_url, Shapes::ShapeRef.new(shape: ImportURL, location_name: "importUrl"))
    ImportTask.add_member(:status, Shapes::ShapeRef.new(shape: ImportStatus, location_name: "status"))
    ImportTask.add_member(:import_request_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "importRequestTime"))
    ImportTask.add_member(:import_completion_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "importCompletionTime"))
    ImportTask.add_member(:import_deleted_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "importDeletedTime"))
    ImportTask.add_member(:file_classification, Shapes::ShapeRef.new(shape: FileClassification, location_name: "fileClassification"))
    ImportTask.add_member(:server_import_success, Shapes::ShapeRef.new(shape: Integer, location_name: "serverImportSuccess"))
    ImportTask.add_member(:server_import_failure, Shapes::ShapeRef.new(shape: Integer, location_name: "serverImportFailure"))
    ImportTask.add_member(:application_import_success, Shapes::ShapeRef.new(shape: Integer, location_name: "applicationImportSuccess"))
    ImportTask.add_member(:application_import_failure, Shapes::ShapeRef.new(shape: Integer, location_name: "applicationImportFailure"))
    ImportTask.add_member(:errors_and_failed_entries_zip, Shapes::ShapeRef.new(shape: S3PresignedUrl, location_name: "errorsAndFailedEntriesZip"))
    ImportTask.struct_class = Types::ImportTask

    ImportTaskFilter.add_member(:name, Shapes::ShapeRef.new(shape: ImportTaskFilterName, location_name: "name"))
    ImportTaskFilter.add_member(:values, Shapes::ShapeRef.new(shape: ImportTaskFilterValueList, location_name: "values"))
    ImportTaskFilter.struct_class = Types::ImportTaskFilter

    ImportTaskFilterValueList.member = Shapes::ShapeRef.new(shape: ImportTaskFilterValue)

    ImportTaskList.member = Shapes::ShapeRef.new(shape: ImportTask)

    InvalidParameterException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    InvalidParameterException.struct_class = Types::InvalidParameterException

    InvalidParameterValueException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    InvalidParameterValueException.struct_class = Types::InvalidParameterValueException

    LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    LimitExceededException.struct_class = Types::LimitExceededException

    ListConfigurationsRequest.add_member(:configuration_type, Shapes::ShapeRef.new(shape: ConfigurationItemType, required: true, location_name: "configurationType"))
    ListConfigurationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: Filters, location_name: "filters"))
    ListConfigurationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    ListConfigurationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    ListConfigurationsRequest.add_member(:order_by, Shapes::ShapeRef.new(shape: OrderByList, location_name: "orderBy"))
    ListConfigurationsRequest.struct_class = Types::ListConfigurationsRequest

    ListConfigurationsResponse.add_member(:configurations, Shapes::ShapeRef.new(shape: Configurations, location_name: "configurations"))
    ListConfigurationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
    ListConfigurationsResponse.struct_class = Types::ListConfigurationsResponse

    ListServerNeighborsRequest.add_member(:configuration_id, Shapes::ShapeRef.new(shape: ConfigurationId, required: true, location_name: "configurationId"))
    ListServerNeighborsRequest.add_member(:port_information_needed, Shapes::ShapeRef.new(shape: Boolean, location_name: "portInformationNeeded"))
    ListServerNeighborsRequest.add_member(:neighbor_configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, location_name: "neighborConfigurationIds"))
    ListServerNeighborsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "maxResults"))
    ListServerNeighborsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    ListServerNeighborsRequest.struct_class = Types::ListServerNeighborsRequest

    ListServerNeighborsResponse.add_member(:neighbors, Shapes::ShapeRef.new(shape: NeighborDetailsList, required: true, location_name: "neighbors"))
    ListServerNeighborsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
    ListServerNeighborsResponse.add_member(:known_dependency_count, Shapes::ShapeRef.new(shape: Long, location_name: "knownDependencyCount"))
    ListServerNeighborsResponse.struct_class = Types::ListServerNeighborsResponse

    NeighborConnectionDetail.add_member(:source_server_id, Shapes::ShapeRef.new(shape: ConfigurationId, required: true, location_name: "sourceServerId"))
    NeighborConnectionDetail.add_member(:destination_server_id, Shapes::ShapeRef.new(shape: ConfigurationId, required: true, location_name: "destinationServerId"))
    NeighborConnectionDetail.add_member(:destination_port, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "destinationPort"))
    NeighborConnectionDetail.add_member(:transport_protocol, Shapes::ShapeRef.new(shape: String, location_name: "transportProtocol"))
    NeighborConnectionDetail.add_member(:connections_count, Shapes::ShapeRef.new(shape: Long, required: true, location_name: "connectionsCount"))
    NeighborConnectionDetail.struct_class = Types::NeighborConnectionDetail

    NeighborDetailsList.member = Shapes::ShapeRef.new(shape: NeighborConnectionDetail)

    OperationNotPermittedException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    OperationNotPermittedException.struct_class = Types::OperationNotPermittedException

    OrderByElement.add_member(:field_name, Shapes::ShapeRef.new(shape: OrderByElementFieldName, required: true, location_name: "fieldName"))
    OrderByElement.add_member(:sort_order, Shapes::ShapeRef.new(shape: orderString, location_name: "sortOrder"))
    OrderByElement.struct_class = Types::OrderByElement

    OrderByList.member = Shapes::ShapeRef.new(shape: OrderByElement)

    ReservedInstanceOptions.add_member(:purchasing_option, Shapes::ShapeRef.new(shape: PurchasingOption, required: true, location_name: "purchasingOption"))
    ReservedInstanceOptions.add_member(:offering_class, Shapes::ShapeRef.new(shape: OfferingClass, required: true, location_name: "offeringClass"))
    ReservedInstanceOptions.add_member(:term_length, Shapes::ShapeRef.new(shape: TermLength, required: true, location_name: "termLength"))
    ReservedInstanceOptions.struct_class = Types::ReservedInstanceOptions

    ResourceInUseException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    ResourceInUseException.struct_class = Types::ResourceInUseException

    ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    ResourceNotFoundException.struct_class = Types::ResourceNotFoundException

    SchemaStorageConfig.key = Shapes::ShapeRef.new(shape: DatabaseName)
    SchemaStorageConfig.value = Shapes::ShapeRef.new(shape: String)

    ServerInternalErrorException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
    ServerInternalErrorException.struct_class = Types::ServerInternalErrorException

    StartBatchDeleteConfigurationTaskRequest.add_member(:configuration_type, Shapes::ShapeRef.new(shape: DeletionConfigurationItemType, required: true, location_name: "configurationType"))
    StartBatchDeleteConfigurationTaskRequest.add_member(:configuration_ids, Shapes::ShapeRef.new(shape: ConfigurationIdList, required: true, location_name: "configurationIds"))
    StartBatchDeleteConfigurationTaskRequest.struct_class = Types::StartBatchDeleteConfigurationTaskRequest

    StartBatchDeleteConfigurationTaskResponse.add_member(:task_id, Shapes::ShapeRef.new(shape: UUID, location_name: "taskId"))
    StartBatchDeleteConfigurationTaskResponse.struct_class = Types::StartBatchDeleteConfigurationTaskResponse

    StartContinuousExportRequest.struct_class = Types::StartContinuousExportRequest

    StartContinuousExportResponse.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, location_name: "exportId"))
    StartContinuousExportResponse.add_member(:s3_bucket, Shapes::ShapeRef.new(shape: S3Bucket, location_name: "s3Bucket"))
    StartContinuousExportResponse.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "startTime"))
    StartContinuousExportResponse.add_member(:data_source, Shapes::ShapeRef.new(shape: DataSource, location_name: "dataSource"))
    StartContinuousExportResponse.add_member(:schema_storage_config, Shapes::ShapeRef.new(shape: SchemaStorageConfig, location_name: "schemaStorageConfig"))
    StartContinuousExportResponse.struct_class = Types::StartContinuousExportResponse

    StartDataCollectionByAgentIdsRequest.add_member(:agent_ids, Shapes::ShapeRef.new(shape: AgentIds, required: true, location_name: "agentIds"))
    StartDataCollectionByAgentIdsRequest.struct_class = Types::StartDataCollectionByAgentIdsRequest

    StartDataCollectionByAgentIdsResponse.add_member(:agents_configuration_status, Shapes::ShapeRef.new(shape: AgentConfigurationStatusList, location_name: "agentsConfigurationStatus"))
    StartDataCollectionByAgentIdsResponse.struct_class = Types::StartDataCollectionByAgentIdsResponse

    StartExportTaskRequest.add_member(:export_data_format, Shapes::ShapeRef.new(shape: ExportDataFormats, location_name: "exportDataFormat"))
    StartExportTaskRequest.add_member(:filters, Shapes::ShapeRef.new(shape: ExportFilters, location_name: "filters"))
    StartExportTaskRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "startTime"))
    StartExportTaskRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "endTime"))
    StartExportTaskRequest.add_member(:preferences, Shapes::ShapeRef.new(shape: ExportPreferences, location_name: "preferences"))
    StartExportTaskRequest.struct_class = Types::StartExportTaskRequest

    StartExportTaskResponse.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, location_name: "exportId"))
    StartExportTaskResponse.struct_class = Types::StartExportTaskResponse

    StartImportTaskRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "clientRequestToken", metadata: {"idempotencyToken" => true}))
    StartImportTaskRequest.add_member(:name, Shapes::ShapeRef.new(shape: ImportTaskName, required: true, location_name: "name"))
    StartImportTaskRequest.add_member(:import_url, Shapes::ShapeRef.new(shape: ImportURL, required: true, location_name: "importUrl"))
    StartImportTaskRequest.struct_class = Types::StartImportTaskRequest

    StartImportTaskResponse.add_member(:task, Shapes::ShapeRef.new(shape: ImportTask, location_name: "task"))
    StartImportTaskResponse.struct_class = Types::StartImportTaskResponse

    StopContinuousExportRequest.add_member(:export_id, Shapes::ShapeRef.new(shape: ConfigurationsExportId, required: true, location_name: "exportId"))
    StopContinuousExportRequest.struct_class = Types::StopContinuousExportRequest

    StopContinuousExportResponse.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "startTime"))
    StopContinuousExportResponse.add_member(:stop_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "stopTime"))
    StopContinuousExportResponse.struct_class = Types::StopContinuousExportResponse

    StopDataCollectionByAgentIdsRequest.add_member(:agent_ids, Shapes::ShapeRef.new(shape: AgentIds, required: true, location_name: "agentIds"))
    StopDataCollectionByAgentIdsRequest.struct_class = Types::StopDataCollectionByAgentIdsRequest

    StopDataCollectionByAgentIdsResponse.add_member(:agents_configuration_status, Shapes::ShapeRef.new(shape: AgentConfigurationStatusList, location_name: "agentsConfigurationStatus"))
    StopDataCollectionByAgentIdsResponse.struct_class = Types::StopDataCollectionByAgentIdsResponse

    Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "key"))
    Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "value"))
    Tag.struct_class = Types::Tag

    TagFilter.add_member(:name, Shapes::ShapeRef.new(shape: FilterName, required: true, location_name: "name"))
    TagFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, required: true, location_name: "values"))
    TagFilter.struct_class = Types::TagFilter

    TagFilters.member = Shapes::ShapeRef.new(shape: TagFilter)

    TagSet.member = Shapes::ShapeRef.new(shape: Tag)

    ToDeleteIdentifierList.member = Shapes::ShapeRef.new(shape: ImportTaskIdentifier)

    UpdateApplicationRequest.add_member(:configuration_id, Shapes::ShapeRef.new(shape: ApplicationId, required: true, location_name: "configurationId"))
    UpdateApplicationRequest.add_member(:name, Shapes::ShapeRef.new(shape: ApplicationName, location_name: "name"))
    UpdateApplicationRequest.add_member(:description, Shapes::ShapeRef.new(shape: ApplicationDescription, location_name: "description"))
    UpdateApplicationRequest.add_member(:wave, Shapes::ShapeRef.new(shape: ApplicationWave, location_name: "wave"))
    UpdateApplicationRequest.struct_class = Types::UpdateApplicationRequest

    UpdateApplicationResponse.struct_class = Types::UpdateApplicationResponse

    UsageMetricBasis.add_member(:name, Shapes::ShapeRef.new(shape: UsageMetricBasisName, location_name: "name"))
    UsageMetricBasis.add_member(:percentage_adjust, Shapes::ShapeRef.new(shape: UsageMetricPercentageAdjust, location_name: "percentageAdjust"))
    UsageMetricBasis.struct_class = Types::UsageMetricBasis


    # @api private
    API = Seahorse::Model::Api.new.tap do |api|

      api.version = "2015-11-01"

      api.metadata = {
        "apiVersion" => "2015-11-01",
        "auth" => ["aws.auth#sigv4"],
        "endpointPrefix" => "discovery",
        "jsonVersion" => "1.1",
        "protocol" => "json",
        "protocols" => ["json"],
        "serviceFullName" => "AWS Application Discovery Service",
        "serviceId" => "Application Discovery Service",
        "signatureVersion" => "v4",
        "targetPrefix" => "AWSPoseidonService_V2015_11_01",
        "uid" => "discovery-2015-11-01",
      }

      api.add_operation(:associate_configuration_items_to_application, Seahorse::Model::Operation.new.tap do |o|
        o.name = "AssociateConfigurationItemsToApplication"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: AssociateConfigurationItemsToApplicationRequest)
        o.output = Shapes::ShapeRef.new(shape: AssociateConfigurationItemsToApplicationResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:batch_delete_agents, Seahorse::Model::Operation.new.tap do |o|
        o.name = "BatchDeleteAgents"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: BatchDeleteAgentsRequest)
        o.output = Shapes::ShapeRef.new(shape: BatchDeleteAgentsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
      end)

      api.add_operation(:batch_delete_import_data, Seahorse::Model::Operation.new.tap do |o|
        o.name = "BatchDeleteImportData"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: BatchDeleteImportDataRequest)
        o.output = Shapes::ShapeRef.new(shape: BatchDeleteImportDataResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:create_application, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateApplication"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateApplicationRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateApplicationResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:create_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "CreateTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: CreateTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: CreateTagsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:delete_applications, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteApplications"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteApplicationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteApplicationsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:delete_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DeleteTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DeleteTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: DeleteTagsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:describe_agents, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeAgents"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeAgentsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeAgentsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_batch_delete_configuration_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeBatchDeleteConfigurationTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeBatchDeleteConfigurationTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeBatchDeleteConfigurationTaskResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:describe_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeConfigurationsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:describe_continuous_exports, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeContinuousExports"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeContinuousExportsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeContinuousExportsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_export_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeExportConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.deprecated = true
        o.input = Shapes::ShapeRef.new(shape: DescribeExportConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeExportConfigurationsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_export_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeExportTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeExportTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeExportTasksResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_import_tasks, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeImportTasks"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeImportTasksRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeImportTasksResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:describe_tags, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DescribeTags"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DescribeTagsRequest)
        o.output = Shapes::ShapeRef.new(shape: DescribeTagsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:disassociate_configuration_items_from_application, Seahorse::Model::Operation.new.tap do |o|
        o.name = "DisassociateConfigurationItemsFromApplication"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: DisassociateConfigurationItemsFromApplicationRequest)
        o.output = Shapes::ShapeRef.new(shape: DisassociateConfigurationItemsFromApplicationResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:export_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ExportConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.deprecated = true
        o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
        o.output = Shapes::ShapeRef.new(shape: ExportConfigurationsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:get_discovery_summary, Seahorse::Model::Operation.new.tap do |o|
        o.name = "GetDiscoverySummary"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: GetDiscoverySummaryRequest)
        o.output = Shapes::ShapeRef.new(shape: GetDiscoverySummaryResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:list_configurations, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ListConfigurations"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ListConfigurationsRequest)
        o.output = Shapes::ShapeRef.new(shape: ListConfigurationsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o[:pager] = Aws::Pager.new(
          limit_key: "max_results",
          tokens: {
            "next_token" => "next_token"
          }
        )
      end)

      api.add_operation(:list_server_neighbors, Seahorse::Model::Operation.new.tap do |o|
        o.name = "ListServerNeighbors"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: ListServerNeighborsRequest)
        o.output = Shapes::ShapeRef.new(shape: ListServerNeighborsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:start_batch_delete_configuration_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartBatchDeleteConfigurationTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartBatchDeleteConfigurationTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: StartBatchDeleteConfigurationTaskResponse)
        o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
      end)

      api.add_operation(:start_continuous_export, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartContinuousExport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartContinuousExportRequest)
        o.output = Shapes::ShapeRef.new(shape: StartContinuousExportResponse)
        o.errors << Shapes::ShapeRef.new(shape: ConflictErrorException)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:start_data_collection_by_agent_ids, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartDataCollectionByAgentIds"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartDataCollectionByAgentIdsRequest)
        o.output = Shapes::ShapeRef.new(shape: StartDataCollectionByAgentIdsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:start_export_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartExportTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartExportTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: StartExportTaskResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:start_import_task, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StartImportTask"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StartImportTaskRequest)
        o.output = Shapes::ShapeRef.new(shape: StartImportTaskResponse)
        o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:stop_continuous_export, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StopContinuousExport"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StopContinuousExportRequest)
        o.output = Shapes::ShapeRef.new(shape: StopContinuousExportResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
        o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:stop_data_collection_by_agent_ids, Seahorse::Model::Operation.new.tap do |o|
        o.name = "StopDataCollectionByAgentIds"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: StopDataCollectionByAgentIdsRequest)
        o.output = Shapes::ShapeRef.new(shape: StopDataCollectionByAgentIdsResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)

      api.add_operation(:update_application, Seahorse::Model::Operation.new.tap do |o|
        o.name = "UpdateApplication"
        o.http_method = "POST"
        o.http_request_uri = "/"
        o.input = Shapes::ShapeRef.new(shape: UpdateApplicationRequest)
        o.output = Shapes::ShapeRef.new(shape: UpdateApplicationResponse)
        o.errors << Shapes::ShapeRef.new(shape: AuthorizationErrorException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
        o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
        o.errors << Shapes::ShapeRef.new(shape: ServerInternalErrorException)
        o.errors << Shapes::ShapeRef.new(shape: HomeRegionNotSetException)
      end)
    end

  end
end
