{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2022-02-17",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"cleanrooms",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS Clean Rooms Service",
    "serviceId":"CleanRooms",
    "signatureVersion":"v4",
    "signingName":"cleanrooms",
    "uid":"cleanrooms-2022-02-17"
  },
  "operations":{
    "BatchGetCollaborationAnalysisTemplate":{
      "name":"BatchGetCollaborationAnalysisTemplate",
      "http":{
        "method":"POST",
        "requestUri":"/collaborations/{collaborationIdentifier}/batch-analysistemplates",
        "responseCode":200
      },
      "input":{"shape":"BatchGetCollaborationAnalysisTemplateInput"},
      "output":{"shape":"BatchGetCollaborationAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves multiple analysis templates within a collaboration by their Amazon Resource Names (ARNs).</p>",
      "readonly":true
    },
    "BatchGetSchema":{
      "name":"BatchGetSchema",
      "http":{
        "method":"POST",
        "requestUri":"/collaborations/{collaborationIdentifier}/batch-schema",
        "responseCode":200
      },
      "input":{"shape":"BatchGetSchemaInput"},
      "output":{"shape":"BatchGetSchemaOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves multiple schemas by their identifiers.</p>",
      "readonly":true
    },
    "BatchGetSchemaAnalysisRule":{
      "name":"BatchGetSchemaAnalysisRule",
      "http":{
        "method":"POST",
        "requestUri":"/collaborations/{collaborationIdentifier}/batch-schema-analysis-rule",
        "responseCode":200
      },
      "input":{"shape":"BatchGetSchemaAnalysisRuleInput"},
      "output":{"shape":"BatchGetSchemaAnalysisRuleOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves multiple analysis rule schemas.</p>",
      "readonly":true
    },
    "CreateAnalysisTemplate":{
      "name":"CreateAnalysisTemplate",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/analysistemplates",
        "responseCode":200
      },
      "input":{"shape":"CreateAnalysisTemplateInput"},
      "output":{"shape":"CreateAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a new analysis template.</p>"
    },
    "CreateCollaboration":{
      "name":"CreateCollaboration",
      "http":{
        "method":"POST",
        "requestUri":"/collaborations",
        "responseCode":200
      },
      "input":{"shape":"CreateCollaborationInput"},
      "output":{"shape":"CreateCollaborationOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a new collaboration.</p>"
    },
    "CreateCollaborationChangeRequest":{
      "name":"CreateCollaborationChangeRequest",
      "http":{
        "method":"POST",
        "requestUri":"/collaborations/{collaborationIdentifier}/changeRequests",
        "responseCode":200
      },
      "input":{"shape":"CreateCollaborationChangeRequestInput"},
      "output":{"shape":"CreateCollaborationChangeRequestOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a new change request to modify an existing collaboration. This enables post-creation modifications to collaborations through a structured API-driven approach.</p>"
    },
    "CreateConfiguredAudienceModelAssociation":{
      "name":"CreateConfiguredAudienceModelAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/configuredaudiencemodelassociations",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredAudienceModelAssociationInput"},
      "output":{"shape":"CreateConfiguredAudienceModelAssociationOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Provides the details necessary to create a configured audience model association.</p>"
    },
    "CreateConfiguredTable":{
      "name":"CreateConfiguredTable",
      "http":{
        "method":"POST",
        "requestUri":"/configuredTables",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredTableInput"},
      "output":{"shape":"CreateConfiguredTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a new configured table resource.</p>",
      "idempotent":true
    },
    "CreateConfiguredTableAnalysisRule":{
      "name":"CreateConfiguredTableAnalysisRule",
      "http":{
        "method":"POST",
        "requestUri":"/configuredTables/{configuredTableIdentifier}/analysisRule",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredTableAnalysisRuleInput"},
      "output":{"shape":"CreateConfiguredTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a new analysis rule for a configured table. Currently, only one analysis rule can be created for a given configured table.</p>",
      "idempotent":true
    },
    "CreateConfiguredTableAssociation":{
      "name":"CreateConfiguredTableAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredTableAssociationInput"},
      "output":{"shape":"CreateConfiguredTableAssociationOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a configured table association. A configured table association links a configured table with a collaboration.</p>"
    },
    "CreateConfiguredTableAssociationAnalysisRule":{
      "name":"CreateConfiguredTableAssociationAnalysisRule",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}/analysisRule",
        "responseCode":200
      },
      "input":{"shape":"CreateConfiguredTableAssociationAnalysisRuleInput"},
      "output":{"shape":"CreateConfiguredTableAssociationAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p> Creates a new analysis rule for an associated configured table.</p>",
      "idempotent":true
    },
    "CreateIdMappingTable":{
      "name":"CreateIdMappingTable",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables",
        "responseCode":200
      },
      "input":{"shape":"CreateIdMappingTableInput"},
      "output":{"shape":"CreateIdMappingTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates an ID mapping table.</p>"
    },
    "CreateIdNamespaceAssociation":{
      "name":"CreateIdNamespaceAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/idnamespaceassociations",
        "responseCode":200
      },
      "input":{"shape":"CreateIdNamespaceAssociationInput"},
      "output":{"shape":"CreateIdNamespaceAssociationOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates an ID namespace association.</p>"
    },
    "CreateIntermediateTable":{
      "name":"CreateIntermediateTable",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables",
        "responseCode":200
      },
      "input":{"shape":"CreateIntermediateTableInput"},
      "output":{"shape":"CreateIntermediateTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates an intermediate table in a membership. An intermediate table stores a query definition that you can execute later using <code>PopulateIntermediateTable</code> to materialize cached results. The intermediate table is owned by the member with the CAN_QUERY ability. This operation does not execute the stored query.</p>"
    },
    "CreateIntermediateTableAnalysisRule":{
      "name":"CreateIntermediateTableAnalysisRule",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/analysisRule",
        "responseCode":200
      },
      "input":{"shape":"CreateIntermediateTableAnalysisRuleInput"},
      "output":{"shape":"CreateIntermediateTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates an analysis rule for an intermediate table. Only the CUSTOM analysis rule type is supported. The service automatically determines whether the rule is first-party or multi-party restricted based on the intermediate table's inherited constraints. Only the intermediate table owner can call this operation.</p>",
      "idempotent":true
    },
    "CreateMembership":{
      "name":"CreateMembership",
      "http":{
        "method":"POST",
        "requestUri":"/memberships",
        "responseCode":200
      },
      "input":{"shape":"CreateMembershipInput"},
      "output":{"shape":"CreateMembershipOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a membership for a specific collaboration identifier and joins the collaboration.</p>"
    },
    "CreatePrivacyBudgetTemplate":{
      "name":"CreatePrivacyBudgetTemplate",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgettemplates",
        "responseCode":200
      },
      "input":{"shape":"CreatePrivacyBudgetTemplateInput"},
      "output":{"shape":"CreatePrivacyBudgetTemplateOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a privacy budget template for a specified collaboration. Each collaboration can have only one privacy budget template. If you need to change the privacy budget template, use the <a>UpdatePrivacyBudgetTemplate</a> operation.</p>"
    },
    "DeleteAnalysisTemplate":{
      "name":"DeleteAnalysisTemplate",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/analysistemplates/{analysisTemplateIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteAnalysisTemplateInput"},
      "output":{"shape":"DeleteAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an analysis template.</p>",
      "idempotent":true
    },
    "DeleteCollaboration":{
      "name":"DeleteCollaboration",
      "http":{
        "method":"DELETE",
        "requestUri":"/collaborations/{collaborationIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteCollaborationInput"},
      "output":{"shape":"DeleteCollaborationOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a collaboration. It can only be called by the collaboration owner.</p>",
      "idempotent":true
    },
    "DeleteConfiguredAudienceModelAssociation":{
      "name":"DeleteConfiguredAudienceModelAssociation",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/configuredaudiencemodelassociations/{configuredAudienceModelAssociationIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteConfiguredAudienceModelAssociationInput"},
      "output":{"shape":"DeleteConfiguredAudienceModelAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Provides the information necessary to delete a configured audience model association.</p>",
      "idempotent":true
    },
    "DeleteConfiguredTable":{
      "name":"DeleteConfiguredTable",
      "http":{
        "method":"DELETE",
        "requestUri":"/configuredTables/{configuredTableIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteConfiguredTableInput"},
      "output":{"shape":"DeleteConfiguredTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a configured table.</p>",
      "idempotent":true
    },
    "DeleteConfiguredTableAnalysisRule":{
      "name":"DeleteConfiguredTableAnalysisRule",
      "http":{
        "method":"DELETE",
        "requestUri":"/configuredTables/{configuredTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":204
      },
      "input":{"shape":"DeleteConfiguredTableAnalysisRuleInput"},
      "output":{"shape":"DeleteConfiguredTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a configured table analysis rule.</p>",
      "idempotent":true
    },
    "DeleteConfiguredTableAssociation":{
      "name":"DeleteConfiguredTableAssociation",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteConfiguredTableAssociationInput"},
      "output":{"shape":"DeleteConfiguredTableAssociationOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a configured table association.</p>",
      "idempotent":true
    },
    "DeleteConfiguredTableAssociationAnalysisRule":{
      "name":"DeleteConfiguredTableAssociationAnalysisRule",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":204
      },
      "input":{"shape":"DeleteConfiguredTableAssociationAnalysisRuleInput"},
      "output":{"shape":"DeleteConfiguredTableAssociationAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an analysis rule for a configured table association.</p>",
      "idempotent":true
    },
    "DeleteIdMappingTable":{
      "name":"DeleteIdMappingTable",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables/{idMappingTableIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteIdMappingTableInput"},
      "output":{"shape":"DeleteIdMappingTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an ID mapping table.</p>",
      "idempotent":true
    },
    "DeleteIdNamespaceAssociation":{
      "name":"DeleteIdNamespaceAssociation",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/idnamespaceassociations/{idNamespaceAssociationIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteIdNamespaceAssociationInput"},
      "output":{"shape":"DeleteIdNamespaceAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an ID namespace association.</p>",
      "idempotent":true
    },
    "DeleteIntermediateTable":{
      "name":"DeleteIntermediateTable",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteIntermediateTableInput"},
      "output":{"shape":"DeleteIntermediateTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an intermediate table. When you delete the table, the service marks it as DELETED, removes its analysis rule and schema, and triggers storage cleanup. This operation is idempotent. Only the intermediate table owner can call this operation.</p>",
      "idempotent":true
    },
    "DeleteIntermediateTableAnalysisRule":{
      "name":"DeleteIntermediateTableAnalysisRule",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":204
      },
      "input":{"shape":"DeleteIntermediateTableAnalysisRuleInput"},
      "output":{"shape":"DeleteIntermediateTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an analysis rule from an intermediate table. After the analysis rule is deleted, the intermediate table becomes unqueryable until a new analysis rule is attached. Only the intermediate table owner can call this operation.</p>",
      "idempotent":true
    },
    "DeleteMember":{
      "name":"DeleteMember",
      "http":{
        "method":"DELETE",
        "requestUri":"/collaborations/{collaborationIdentifier}/member/{accountId}",
        "responseCode":204
      },
      "input":{"shape":"DeleteMemberInput"},
      "output":{"shape":"DeleteMemberOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Removes the specified member from a collaboration. The removed member is placed in the Removed status and can't interact with the collaboration. The removed member's data is inaccessible to active members of the collaboration.</p>",
      "idempotent":true
    },
    "DeleteMembership":{
      "name":"DeleteMembership",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeleteMembershipInput"},
      "output":{"shape":"DeleteMembershipOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a specified membership. All resources under a membership must be deleted.</p>",
      "idempotent":true
    },
    "DeletePrivacyBudgetTemplate":{
      "name":"DeletePrivacyBudgetTemplate",
      "http":{
        "method":"DELETE",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgettemplates/{privacyBudgetTemplateIdentifier}",
        "responseCode":204
      },
      "input":{"shape":"DeletePrivacyBudgetTemplateInput"},
      "output":{"shape":"DeletePrivacyBudgetTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a privacy budget template for a specified collaboration.</p>",
      "idempotent":true
    },
    "DisallowIntermediateTable":{
      "name":"DisallowIntermediateTable",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/disallowIntermediateTable",
        "responseCode":200
      },
      "input":{"shape":"DisallowIntermediateTableInput"},
      "output":{"shape":"DisallowIntermediateTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Invalidates a specific intermediate table that references the caller's base table. The data provider (base table owner) calls this operation, not the intermediate table owner. By default, invalidation cascades to descendant intermediate tables.</p>",
      "idempotent":true
    },
    "GetAnalysisTemplate":{
      "name":"GetAnalysisTemplate",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/analysistemplates/{analysisTemplateIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetAnalysisTemplateInput"},
      "output":{"shape":"GetAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an analysis template.</p>",
      "readonly":true
    },
    "GetCollaboration":{
      "name":"GetCollaboration",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationInput"},
      "output":{"shape":"GetCollaborationOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns metadata about a collaboration.</p>",
      "readonly":true
    },
    "GetCollaborationAnalysisTemplate":{
      "name":"GetCollaborationAnalysisTemplate",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/analysistemplates/{analysisTemplateArn}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationAnalysisTemplateInput"},
      "output":{"shape":"GetCollaborationAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an analysis template within a collaboration.</p>",
      "readonly":true
    },
    "GetCollaborationChangeRequest":{
      "name":"GetCollaborationChangeRequest",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/changeRequests/{changeRequestIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationChangeRequestInput"},
      "output":{"shape":"GetCollaborationChangeRequestOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific collaboration change request.</p>",
      "readonly":true
    },
    "GetCollaborationConfiguredAudienceModelAssociation":{
      "name":"GetCollaborationConfiguredAudienceModelAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/configuredaudiencemodelassociations/{configuredAudienceModelAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationConfiguredAudienceModelAssociationInput"},
      "output":{"shape":"GetCollaborationConfiguredAudienceModelAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a configured audience model association within a collaboration.</p>",
      "readonly":true
    },
    "GetCollaborationIdNamespaceAssociation":{
      "name":"GetCollaborationIdNamespaceAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/idnamespaceassociations/{idNamespaceAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationIdNamespaceAssociationInput"},
      "output":{"shape":"GetCollaborationIdNamespaceAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an ID namespace association from a specific collaboration.</p>",
      "readonly":true
    },
    "GetCollaborationPrivacyBudgetTemplate":{
      "name":"GetCollaborationPrivacyBudgetTemplate",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/privacybudgettemplates/{privacyBudgetTemplateIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetCollaborationPrivacyBudgetTemplateInput"},
      "output":{"shape":"GetCollaborationPrivacyBudgetTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns details about a specified privacy budget template.</p>",
      "readonly":true
    },
    "GetConfiguredAudienceModelAssociation":{
      "name":"GetConfiguredAudienceModelAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/configuredaudiencemodelassociations/{configuredAudienceModelAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredAudienceModelAssociationInput"},
      "output":{"shape":"GetConfiguredAudienceModelAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns information about a configured audience model association.</p>",
      "readonly":true
    },
    "GetConfiguredTable":{
      "name":"GetConfiguredTable",
      "http":{
        "method":"GET",
        "requestUri":"/configuredTables/{configuredTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredTableInput"},
      "output":{"shape":"GetConfiguredTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a configured table.</p>",
      "readonly":true
    },
    "GetConfiguredTableAnalysisRule":{
      "name":"GetConfiguredTableAnalysisRule",
      "http":{
        "method":"GET",
        "requestUri":"/configuredTables/{configuredTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredTableAnalysisRuleInput"},
      "output":{"shape":"GetConfiguredTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a configured table analysis rule.</p>",
      "readonly":true
    },
    "GetConfiguredTableAssociation":{
      "name":"GetConfiguredTableAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredTableAssociationInput"},
      "output":{"shape":"GetConfiguredTableAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a configured table association.</p>",
      "readonly":true
    },
    "GetConfiguredTableAssociationAnalysisRule":{
      "name":"GetConfiguredTableAssociationAnalysisRule",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"GetConfiguredTableAssociationAnalysisRuleInput"},
      "output":{"shape":"GetConfiguredTableAssociationAnalysisRuleOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p> Retrieves the analysis rule for a configured table association.</p>",
      "readonly":true
    },
    "GetIdMappingTable":{
      "name":"GetIdMappingTable",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables/{idMappingTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetIdMappingTableInput"},
      "output":{"shape":"GetIdMappingTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an ID mapping table.</p>",
      "readonly":true
    },
    "GetIdNamespaceAssociation":{
      "name":"GetIdNamespaceAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/idnamespaceassociations/{idNamespaceAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetIdNamespaceAssociationInput"},
      "output":{"shape":"GetIdNamespaceAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an ID namespace association.</p>",
      "readonly":true
    },
    "GetIntermediateTable":{
      "name":"GetIntermediateTable",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetIntermediateTableInput"},
      "output":{"shape":"GetIntermediateTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves an intermediate table. Returns the full details of the intermediate table, including schema, table dependencies, inherited constraints, child resources, and status. Only the intermediate table owner can call this operation.</p>",
      "readonly":true
    },
    "GetIntermediateTableAnalysisRule":{
      "name":"GetIntermediateTableAnalysisRule",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"GetIntermediateTableAnalysisRuleInput"},
      "output":{"shape":"GetIntermediateTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves the analysis rule for an intermediate table.</p>",
      "readonly":true
    },
    "GetMembership":{
      "name":"GetMembership",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetMembershipInput"},
      "output":{"shape":"GetMembershipOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a specified membership for an identifier.</p>",
      "readonly":true
    },
    "GetPrivacyBudgetTemplate":{
      "name":"GetPrivacyBudgetTemplate",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgettemplates/{privacyBudgetTemplateIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetPrivacyBudgetTemplateInput"},
      "output":{"shape":"GetPrivacyBudgetTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns details for a specified privacy budget template.</p>",
      "readonly":true
    },
    "GetProtectedJob":{
      "name":"GetProtectedJob",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/protectedJobs/{protectedJobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetProtectedJobInput"},
      "output":{"shape":"GetProtectedJobOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns job processing metadata.</p>",
      "readonly":true
    },
    "GetProtectedQuery":{
      "name":"GetProtectedQuery",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/protectedQueries/{protectedQueryIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"GetProtectedQueryInput"},
      "output":{"shape":"GetProtectedQueryOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns query processing metadata.</p>",
      "readonly":true
    },
    "GetSchema":{
      "name":"GetSchema",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/schemas/{name}",
        "responseCode":200
      },
      "input":{"shape":"GetSchemaInput"},
      "output":{"shape":"GetSchemaOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves the schema for a relation within a collaboration.</p>",
      "readonly":true
    },
    "GetSchemaAnalysisRule":{
      "name":"GetSchemaAnalysisRule",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/schemas/{name}/analysisRule/{type}",
        "responseCode":200
      },
      "input":{"shape":"GetSchemaAnalysisRuleInput"},
      "output":{"shape":"GetSchemaAnalysisRuleOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a schema analysis rule.</p>",
      "readonly":true
    },
    "ListAnalysisTemplates":{
      "name":"ListAnalysisTemplates",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/analysistemplates",
        "responseCode":200
      },
      "input":{"shape":"ListAnalysisTemplatesInput"},
      "output":{"shape":"ListAnalysisTemplatesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists analysis templates that the caller owns.</p>",
      "readonly":true
    },
    "ListCollaborationAnalysisTemplates":{
      "name":"ListCollaborationAnalysisTemplates",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/analysistemplates",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationAnalysisTemplatesInput"},
      "output":{"shape":"ListCollaborationAnalysisTemplatesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists analysis templates within a collaboration.</p>",
      "readonly":true
    },
    "ListCollaborationChangeRequests":{
      "name":"ListCollaborationChangeRequests",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/changeRequests",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationChangeRequestsInput"},
      "output":{"shape":"ListCollaborationChangeRequestsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists all change requests for a collaboration with pagination support. Returns change requests sorted by creation time.</p>",
      "readonly":true
    },
    "ListCollaborationConfiguredAudienceModelAssociations":{
      "name":"ListCollaborationConfiguredAudienceModelAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/configuredaudiencemodelassociations",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationConfiguredAudienceModelAssociationsInput"},
      "output":{"shape":"ListCollaborationConfiguredAudienceModelAssociationsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists configured audience model associations within a collaboration.</p>",
      "readonly":true
    },
    "ListCollaborationIdNamespaceAssociations":{
      "name":"ListCollaborationIdNamespaceAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/idnamespaceassociations",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationIdNamespaceAssociationsInput"},
      "output":{"shape":"ListCollaborationIdNamespaceAssociationsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of the ID namespace associations in a collaboration.</p>",
      "readonly":true
    },
    "ListCollaborationPrivacyBudgetTemplates":{
      "name":"ListCollaborationPrivacyBudgetTemplates",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/privacybudgettemplates",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationPrivacyBudgetTemplatesInput"},
      "output":{"shape":"ListCollaborationPrivacyBudgetTemplatesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns an array that summarizes each privacy budget template in a specified collaboration.</p>",
      "readonly":true
    },
    "ListCollaborationPrivacyBudgets":{
      "name":"ListCollaborationPrivacyBudgets",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/privacybudgets",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationPrivacyBudgetsInput"},
      "output":{"shape":"ListCollaborationPrivacyBudgetsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns an array that summarizes each privacy budget in a specified collaboration. The summary includes the collaboration ARN, creation time, creating account, and privacy budget details.</p>",
      "readonly":true
    },
    "ListCollaborations":{
      "name":"ListCollaborations",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations",
        "responseCode":200
      },
      "input":{"shape":"ListCollaborationsInput"},
      "output":{"shape":"ListCollaborationsOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists collaborations the caller owns, is active in, or has been invited to.</p>",
      "readonly":true
    },
    "ListConfiguredAudienceModelAssociations":{
      "name":"ListConfiguredAudienceModelAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/configuredaudiencemodelassociations",
        "responseCode":200
      },
      "input":{"shape":"ListConfiguredAudienceModelAssociationsInput"},
      "output":{"shape":"ListConfiguredAudienceModelAssociationsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists information about requested configured audience model associations.</p>",
      "readonly":true
    },
    "ListConfiguredTableAssociations":{
      "name":"ListConfiguredTableAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations",
        "responseCode":200
      },
      "input":{"shape":"ListConfiguredTableAssociationsInput"},
      "output":{"shape":"ListConfiguredTableAssociationsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists configured table associations for a membership.</p>",
      "readonly":true
    },
    "ListConfiguredTables":{
      "name":"ListConfiguredTables",
      "http":{
        "method":"GET",
        "requestUri":"/configuredTables",
        "responseCode":200
      },
      "input":{"shape":"ListConfiguredTablesInput"},
      "output":{"shape":"ListConfiguredTablesOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists configured tables.</p>",
      "readonly":true
    },
    "ListIdMappingTables":{
      "name":"ListIdMappingTables",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables",
        "responseCode":200
      },
      "input":{"shape":"ListIdMappingTablesInput"},
      "output":{"shape":"ListIdMappingTablesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of ID mapping tables.</p>",
      "readonly":true
    },
    "ListIdNamespaceAssociations":{
      "name":"ListIdNamespaceAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/idnamespaceassociations",
        "responseCode":200
      },
      "input":{"shape":"ListIdNamespaceAssociationsInput"},
      "output":{"shape":"ListIdNamespaceAssociationsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns a list of ID namespace associations.</p>",
      "readonly":true
    },
    "ListIntermediateTableVersions":{
      "name":"ListIntermediateTableVersions",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/versions",
        "responseCode":200
      },
      "input":{"shape":"ListIntermediateTableVersionsInput"},
      "output":{"shape":"ListIntermediateTableVersionsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the version history of an intermediate table. Each call to <code>PopulateIntermediateTable</code> creates a new version. We recommend using pagination to ensure that the operation returns quickly and successfully.</p>",
      "readonly":true
    },
    "ListIntermediateTables":{
      "name":"ListIntermediateTables",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables",
        "responseCode":200
      },
      "input":{"shape":"ListIntermediateTablesInput"},
      "output":{"shape":"ListIntermediateTablesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists intermediate tables owned by the caller in a membership. We recommend using pagination to ensure that the operation returns quickly and successfully.</p>",
      "readonly":true
    },
    "ListMembers":{
      "name":"ListMembers",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/members",
        "responseCode":200
      },
      "input":{"shape":"ListMembersInput"},
      "output":{"shape":"ListMembersOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists all members within a collaboration.</p>",
      "readonly":true
    },
    "ListMemberships":{
      "name":"ListMemberships",
      "http":{
        "method":"GET",
        "requestUri":"/memberships",
        "responseCode":200
      },
      "input":{"shape":"ListMembershipsInput"},
      "output":{"shape":"ListMembershipsOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists all memberships resources within the caller's account.</p>",
      "readonly":true
    },
    "ListPrivacyBudgetTemplates":{
      "name":"ListPrivacyBudgetTemplates",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgettemplates",
        "responseCode":200
      },
      "input":{"shape":"ListPrivacyBudgetTemplatesInput"},
      "output":{"shape":"ListPrivacyBudgetTemplatesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns detailed information about the privacy budget templates in a specified membership.</p>",
      "readonly":true
    },
    "ListPrivacyBudgets":{
      "name":"ListPrivacyBudgets",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgets",
        "responseCode":200
      },
      "input":{"shape":"ListPrivacyBudgetsInput"},
      "output":{"shape":"ListPrivacyBudgetsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Returns detailed information about the privacy budgets in a specified membership.</p>",
      "readonly":true
    },
    "ListProtectedJobs":{
      "name":"ListProtectedJobs",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/protectedJobs",
        "responseCode":200
      },
      "input":{"shape":"ListProtectedJobsInput"},
      "output":{"shape":"ListProtectedJobsOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists protected jobs, sorted by most recent job.</p>",
      "readonly":true
    },
    "ListProtectedQueries":{
      "name":"ListProtectedQueries",
      "http":{
        "method":"GET",
        "requestUri":"/memberships/{membershipIdentifier}/protectedQueries",
        "responseCode":200
      },
      "input":{"shape":"ListProtectedQueriesInput"},
      "output":{"shape":"ListProtectedQueriesOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists protected queries, sorted by the most recent query.</p>",
      "readonly":true
    },
    "ListSchemas":{
      "name":"ListSchemas",
      "http":{
        "method":"GET",
        "requestUri":"/collaborations/{collaborationIdentifier}/schemas",
        "responseCode":200
      },
      "input":{"shape":"ListSchemasInput"},
      "output":{"shape":"ListSchemasOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the schemas for relations within a collaboration.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceInput"},
      "output":{"shape":"ListTagsForResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists all of the tags that have been added to a resource.</p>",
      "readonly":true
    },
    "PopulateIdMappingTable":{
      "name":"PopulateIdMappingTable",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables/{idMappingTableIdentifier}/populate",
        "responseCode":200
      },
      "input":{"shape":"PopulateIdMappingTableInput"},
      "output":{"shape":"PopulateIdMappingTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Defines the information that's necessary to populate an ID mapping table.</p>"
    },
    "PopulateIntermediateTable":{
      "name":"PopulateIntermediateTable",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/populate",
        "responseCode":200
      },
      "input":{"shape":"PopulateIntermediateTableInput"},
      "output":{"shape":"PopulateIntermediateTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Executes the stored query of an intermediate table to materialize data into managed storage. With this operation, you can perform initial population and subsequent refreshes. Each call creates a new version. The returned analysis ID can be tracked using <code>GetProtectedQuery</code>. Only the intermediate table owner can call this operation.</p>"
    },
    "PreviewPrivacyImpact":{
      "name":"PreviewPrivacyImpact",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/previewprivacyimpact",
        "responseCode":200
      },
      "input":{"shape":"PreviewPrivacyImpactInput"},
      "output":{"shape":"PreviewPrivacyImpactOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>An estimate of the number of aggregation functions that the member who can query can run given epsilon and noise parameters.</p>"
    },
    "StartProtectedJob":{
      "name":"StartProtectedJob",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/protectedJobs",
        "responseCode":200
      },
      "input":{"shape":"StartProtectedJobInput"},
      "output":{"shape":"StartProtectedJobOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a protected job that is started by Clean Rooms.</p>"
    },
    "StartProtectedQuery":{
      "name":"StartProtectedQuery",
      "http":{
        "method":"POST",
        "requestUri":"/memberships/{membershipIdentifier}/protectedQueries",
        "responseCode":200
      },
      "input":{"shape":"StartProtectedQueryInput"},
      "output":{"shape":"StartProtectedQueryOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a protected query that is started by Clean Rooms.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceInput"},
      "output":{"shape":"TagResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Tags a resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceInput"},
      "output":{"shape":"UntagResourceOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Removes a tag or list of tags from a resource.</p>"
    },
    "UpdateAnalysisTemplate":{
      "name":"UpdateAnalysisTemplate",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/analysistemplates/{analysisTemplateIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAnalysisTemplateInput"},
      "output":{"shape":"UpdateAnalysisTemplateOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the analysis template metadata.</p>"
    },
    "UpdateCollaboration":{
      "name":"UpdateCollaboration",
      "http":{
        "method":"PATCH",
        "requestUri":"/collaborations/{collaborationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateCollaborationInput"},
      "output":{"shape":"UpdateCollaborationOutput"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates collaboration metadata and can only be called by the collaboration owner.</p>"
    },
    "UpdateCollaborationChangeRequest":{
      "name":"UpdateCollaborationChangeRequest",
      "http":{
        "method":"PATCH",
        "requestUri":"/collaborations/{collaborationIdentifier}/changeRequests/{changeRequestIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateCollaborationChangeRequestInput"},
      "output":{"shape":"UpdateCollaborationChangeRequestOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing collaboration change request. This operation allows approval actions for pending change requests in collaborations (APPROVE, DENY, CANCEL, COMMIT).</p> <p>For change requests without automatic approval, a member in the collaboration can manually APPROVE or DENY a change request. The collaboration owner can manually CANCEL or COMMIT a change request.</p>"
    },
    "UpdateConfiguredAudienceModelAssociation":{
      "name":"UpdateConfiguredAudienceModelAssociation",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/configuredaudiencemodelassociations/{configuredAudienceModelAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredAudienceModelAssociationInput"},
      "output":{"shape":"UpdateConfiguredAudienceModelAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Provides the details necessary to update a configured audience model association.</p>"
    },
    "UpdateConfiguredTable":{
      "name":"UpdateConfiguredTable",
      "http":{
        "method":"PATCH",
        "requestUri":"/configuredTables/{configuredTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredTableInput"},
      "output":{"shape":"UpdateConfiguredTableOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a configured table.</p>"
    },
    "UpdateConfiguredTableAnalysisRule":{
      "name":"UpdateConfiguredTableAnalysisRule",
      "http":{
        "method":"PATCH",
        "requestUri":"/configuredTables/{configuredTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredTableAnalysisRuleInput"},
      "output":{"shape":"UpdateConfiguredTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a configured table analysis rule.</p>"
    },
    "UpdateConfiguredTableAssociation":{
      "name":"UpdateConfiguredTableAssociation",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredTableAssociationInput"},
      "output":{"shape":"UpdateConfiguredTableAssociationOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a configured table association.</p>"
    },
    "UpdateConfiguredTableAssociationAnalysisRule":{
      "name":"UpdateConfiguredTableAssociationAnalysisRule",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/configuredTableAssociations/{configuredTableAssociationIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfiguredTableAssociationAnalysisRuleInput"},
      "output":{"shape":"UpdateConfiguredTableAssociationAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p> Updates the analysis rule for a configured table association.</p>"
    },
    "UpdateIdMappingTable":{
      "name":"UpdateIdMappingTable",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/idmappingtables/{idMappingTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIdMappingTableInput"},
      "output":{"shape":"UpdateIdMappingTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Provides the details that are necessary to update an ID mapping table.</p>"
    },
    "UpdateIdNamespaceAssociation":{
      "name":"UpdateIdNamespaceAssociation",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/idnamespaceassociations/{idNamespaceAssociationIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIdNamespaceAssociationInput"},
      "output":{"shape":"UpdateIdNamespaceAssociationOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Provides the details that are necessary to update an ID namespace association.</p>"
    },
    "UpdateIntermediateTable":{
      "name":"UpdateIntermediateTable",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIntermediateTableInput"},
      "output":{"shape":"UpdateIntermediateTableOutput"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an intermediate table. You can update the description, KMS key ARN, and column types of existing columns. Only the intermediate table owner can call this operation.</p>"
    },
    "UpdateIntermediateTableAnalysisRule":{
      "name":"UpdateIntermediateTableAnalysisRule",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/intermediateTables/{intermediateTableIdentifier}/analysisRule/{analysisRuleType}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIntermediateTableAnalysisRuleInput"},
      "output":{"shape":"UpdateIntermediateTableAnalysisRuleOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the analysis rule policy for an intermediate table. Only the intermediate table owner can call this operation.</p>"
    },
    "UpdateMembership":{
      "name":"UpdateMembership",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateMembershipInput"},
      "output":{"shape":"UpdateMembershipOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a membership.</p>"
    },
    "UpdatePrivacyBudgetTemplate":{
      "name":"UpdatePrivacyBudgetTemplate",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/privacybudgettemplates/{privacyBudgetTemplateIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdatePrivacyBudgetTemplateInput"},
      "output":{"shape":"UpdatePrivacyBudgetTemplateOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the privacy budget template for the specified collaboration.</p>"
    },
    "UpdateProtectedJob":{
      "name":"UpdateProtectedJob",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/protectedJobs/{protectedJobIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateProtectedJobInput"},
      "output":{"shape":"UpdateProtectedJobOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the processing of a currently running job.</p>",
      "idempotent":true
    },
    "UpdateProtectedQuery":{
      "name":"UpdateProtectedQuery",
      "http":{
        "method":"PATCH",
        "requestUri":"/memberships/{membershipIdentifier}/protectedQueries/{protectedQueryIdentifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateProtectedQueryInput"},
      "output":{"shape":"UpdateProtectedQueryOutput"},
      "errors":[
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the processing of a currently running query.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessBudget":{
      "type":"structure",
      "required":[
        "resourceArn",
        "details",
        "aggregateRemainingBudget"
      ],
      "members":{
        "resourceArn":{
          "shape":"BudgetedResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the access budget resource.</p>"
        },
        "details":{
          "shape":"AccessBudgetDetailsList",
          "documentation":"<p>Detailed budget information including time bounds, remaining budget, and refresh settings.</p>"
        },
        "aggregateRemainingBudget":{
          "shape":"RemainingBudget",
          "documentation":"<p>The total remaining budget across all budget parameters, showing the lower value between the per-period budget and lifetime budget for this access budget. For individual parameter budgets, see <code>remainingBudget</code>.</p>"
        }
      },
      "documentation":"<p>Controls and tracks usage limits for associated configured tables within a collaboration across queries and job. Supports both period-based budgets that can renew (daily, weekly, or monthly) and fixed lifetime budgets. Contains the resource ARN, remaining budget information, and up to two budget configurations (period-based and lifetime). By default, table usage is unlimited unless a budget is configured.</p>"
    },
    "AccessBudgetDetails":{
      "type":"structure",
      "required":[
        "startTime",
        "remainingBudget",
        "budget",
        "budgetType"
      ],
      "members":{
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for the access budget period.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for the access budget period.</p>"
        },
        "remainingBudget":{
          "shape":"RemainingBudget",
          "documentation":"<p>The remaining budget amount available for use within this access budget.</p>"
        },
        "budget":{
          "shape":"Budget",
          "documentation":"<p>The total budget allocation amount for this access budget.</p>"
        },
        "budgetType":{
          "shape":"AccessBudgetType",
          "documentation":"<p>Specifies the time period for limiting table usage in queries and jobs. For calendar-based periods, the budget can renew if auto refresh is enabled. For lifetime budgets, the limit applies to the total usage throughout the collaboration. Valid values are:</p> <p> <code>CALENDAR_DAY</code> - Limit table usage per day.</p> <p> <code>CALENDAR_WEEK</code> - Limit table usage per week.</p> <p> <code>CALENDAR_MONTH</code> - Limit table usage per month.</p> <p> <code>LIFETIME</code> - Limit total table usage for the collaboration duration.</p>"
        },
        "autoRefresh":{
          "shape":"AutoRefreshMode",
          "documentation":"<p>Indicates whether the budget automatically refreshes for each time period specified in <code>budgetType</code>. Valid values are:</p> <p> <code>ENABLED</code> - The budget refreshes automatically at the start of each period.</p> <p> <code>DISABLED</code> - The budget must be refreshed manually.</p> <p> <code>NULL</code> - The value is null when <code>budgetType</code> is set to <code>LIFETIME</code>.</p>"
        }
      },
      "documentation":"<p>Detailed information about an access budget including time bounds, budget allocation, and configuration settings.</p>"
    },
    "AccessBudgetDetailsList":{
      "type":"list",
      "member":{"shape":"AccessBudgetDetails"},
      "max":2,
      "min":1
    },
    "AccessBudgetType":{
      "type":"string",
      "enum":[
        "CALENDAR_DAY",
        "CALENDAR_MONTH",
        "CALENDAR_WEEK",
        "LIFETIME"
      ]
    },
    "AccessBudgetsPrivacyTemplateParametersInput":{
      "type":"structure",
      "required":[
        "budgetParameters",
        "resourceArn"
      ],
      "members":{
        "budgetParameters":{
          "shape":"BudgetParameters",
          "documentation":"<p>An array of budget parameters that define the access budget configuration for the privacy template.</p>"
        },
        "resourceArn":{
          "shape":"BudgetedResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource associated with this privacy budget template.</p>"
        }
      },
      "documentation":"<p>Input parameters for privacy budget templates that support access budgets functionality, enabling enhanced budget management capabilities.</p>"
    },
    "AccessBudgetsPrivacyTemplateParametersOutput":{
      "type":"structure",
      "required":[
        "budgetParameters",
        "resourceArn"
      ],
      "members":{
        "budgetParameters":{
          "shape":"BudgetParameters",
          "documentation":"<p>An array of budget parameters returned from the access budget configuration.</p>"
        },
        "resourceArn":{
          "shape":"BudgetedResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource associated with this privacy budget template.</p>"
        }
      },
      "documentation":"<p>Output parameters for privacy budget templates with access budgets support, containing the configured budget information.</p>"
    },
    "AccessBudgetsPrivacyTemplateUpdateParameters":{
      "type":"structure",
      "required":["budgetParameters"],
      "members":{
        "budgetParameters":{
          "shape":"BudgetParameters",
          "documentation":"<p>Updated array of budget parameters for the access budget configuration.</p>"
        }
      },
      "documentation":"<p>Update parameters for privacy budget templates with access budgets functionality, allowing modification of existing budget configurations.</p>"
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "reason":{
          "shape":"AccessDeniedExceptionReason",
          "documentation":"<p>A reason code for the exception.</p>"
        }
      },
      "documentation":"<p>Caller does not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccessDeniedExceptionReason":{
      "type":"string",
      "enum":["INSUFFICIENT_PERMISSIONS"]
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"\\d+"
    },
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "AdditionalAnalyses":{
      "type":"string",
      "enum":[
        "ALLOWED",
        "REQUIRED",
        "NOT_ALLOWED"
      ]
    },
    "AdditionalAnalysesResourceArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:([\\d]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configuredaudiencemodelassociation\\/[\\*\\d\\w-]+$|^arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:([0-9]{12}|\\*):membership\\/[\\*\\d\\w-]+\\/configured-model-algorithm-association\\/([-a-zA-Z0-9_\\/.]+|\\*)"
    },
    "AggregateColumn":{
      "type":"structure",
      "required":[
        "columnNames",
        "function"
      ],
      "members":{
        "columnNames":{
          "shape":"AggregateColumnColumnNamesList",
          "documentation":"<p>Column names in configured table of aggregate columns.</p>"
        },
        "function":{
          "shape":"AggregateFunctionName",
          "documentation":"<p>Aggregation function that can be applied to aggregate column in query.</p>"
        }
      },
      "documentation":"<p>Column in configured table that can be used in aggregate function in query.</p>"
    },
    "AggregateColumnColumnNamesList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"},
      "min":1
    },
    "AggregateFunctionName":{
      "type":"string",
      "enum":[
        "SUM",
        "SUM_DISTINCT",
        "COUNT",
        "COUNT_DISTINCT",
        "AVG"
      ]
    },
    "AggregationConstraint":{
      "type":"structure",
      "required":[
        "columnName",
        "minimum",
        "type"
      ],
      "members":{
        "columnName":{
          "shape":"AnalysisRuleColumnName",
          "documentation":"<p>Column in aggregation constraint for which there must be a minimum number of distinct values in an output row for it to be in the query output.</p>"
        },
        "minimum":{
          "shape":"AggregationConstraintMinimumInteger",
          "documentation":"<p>The minimum number of distinct values that an output row must be an aggregation of. Minimum threshold of distinct values for a specified column that must exist in an output row for it to be in the query output.</p>"
        },
        "type":{
          "shape":"AggregationType",
          "documentation":"<p>The type of aggregation the constraint allows. The only valid value is currently `COUNT_DISTINCT`.</p>"
        }
      },
      "documentation":"<p>Constraint on query output removing output rows that do not meet a minimum number of distinct values of a specified column.</p>"
    },
    "AggregationConstraintMinimumInteger":{
      "type":"integer",
      "box":true,
      "max":100000,
      "min":2
    },
    "AggregationConstraints":{
      "type":"list",
      "member":{"shape":"AggregationConstraint"},
      "min":1
    },
    "AggregationType":{
      "type":"string",
      "enum":["COUNT_DISTINCT"]
    },
    "AllowedAdditionalAnalyses":{
      "type":"list",
      "member":{"shape":"AdditionalAnalysesResourceArn"},
      "max":25,
      "min":0
    },
    "AllowedAnalysesList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateArnOrQueryWildcard"}
    },
    "AllowedAnalysisProviderList":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "AllowedColumnList":{
      "type":"list",
      "member":{"shape":"ColumnName"},
      "min":1
    },
    "AllowedResultReceivers":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "AllowedResultRegions":{
      "type":"list",
      "member":{"shape":"SupportedS3Region"}
    },
    "AnalysisFormat":{
      "type":"string",
      "enum":[
        "SQL",
        "PYSPARK_1_0"
      ]
    },
    "AnalysisIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "AnalysisMethod":{
      "type":"string",
      "enum":[
        "DIRECT_QUERY",
        "DIRECT_JOB",
        "MULTIPLE"
      ]
    },
    "AnalysisParameter":{
      "type":"structure",
      "required":[
        "name",
        "type"
      ],
      "members":{
        "name":{
          "shape":"ParameterName",
          "documentation":"<p>The name of the parameter. The name must use only alphanumeric or underscore (_) characters.</p>"
        },
        "type":{
          "shape":"ParameterType",
          "documentation":"<p>The type of parameter.</p>"
        },
        "defaultValue":{
          "shape":"ParameterValue",
          "documentation":"<p>Optional. The default value that is applied in the analysis template. The member who can query can override this value in the query editor.</p>"
        }
      },
      "documentation":"<p>Optional. The member who can query can provide this placeholder for a literal data value in an analysis template.</p>",
      "sensitive":true
    },
    "AnalysisParameterList":{
      "type":"list",
      "member":{"shape":"AnalysisParameter"},
      "max":50,
      "min":0
    },
    "AnalysisRule":{
      "type":"structure",
      "required":[
        "collaborationId",
        "type",
        "name",
        "createTime",
        "updateTime",
        "policy"
      ],
      "members":{
        "collaborationId":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique ID for the associated collaboration.</p>"
        },
        "type":{
          "shape":"AnalysisRuleType",
          "documentation":"<p>The type of analysis rule.</p>"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name for the analysis rule.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the analysis rule was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the analysis rule was last updated.</p>"
        },
        "policy":{
          "shape":"AnalysisRulePolicy",
          "documentation":"<p>A policy that describes the associated data usage limitations.</p>"
        },
        "collaborationPolicy":{"shape":"ConfiguredTableAssociationAnalysisRulePolicy"},
        "consolidatedPolicy":{
          "shape":"ConsolidatedPolicy",
          "documentation":"<p> The consolidated policy for the analysis rule.</p>"
        }
      },
      "documentation":"<p>A specification about how data from the configured table can be used in a query.</p>"
    },
    "AnalysisRuleAggregation":{
      "type":"structure",
      "required":[
        "aggregateColumns",
        "joinColumns",
        "dimensionColumns",
        "scalarFunctions",
        "outputConstraints"
      ],
      "members":{
        "aggregateColumns":{
          "shape":"AnalysisRuleAggregationAggregateColumnsList",
          "documentation":"<p>The columns that query runners are allowed to use in aggregation queries.</p>"
        },
        "joinColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be outputted directly.</p>"
        },
        "joinRequired":{
          "shape":"JoinRequiredOption",
          "documentation":"<p>Control that requires member who runs query to do a join with their configured table and/or other configured table in query.</p>"
        },
        "allowedJoinOperators":{
          "shape":"JoinOperatorsList",
          "documentation":"<p>Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is <code>AND</code>.</p>"
        },
        "dimensionColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>The columns that query runners are allowed to select, group by, or filter by.</p>"
        },
        "scalarFunctions":{
          "shape":"ScalarFunctionsList",
          "documentation":"<p>Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of metrics.</p>"
        },
        "outputConstraints":{
          "shape":"AggregationConstraints",
          "documentation":"<p>Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each output row to be returned.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query. </p> <p>The <code>additionalAnalyses</code> parameter is currently supported for the list analysis rule (<code>AnalysisRuleList</code>) and the custom analysis rule (<code>AnalysisRuleCustom</code>).</p>"
        }
      },
      "documentation":"<p>A type of analysis rule that enables query structure and specified queries that produce aggregate statistics.</p>"
    },
    "AnalysisRuleAggregationAggregateColumnsList":{
      "type":"list",
      "member":{"shape":"AggregateColumn"},
      "min":1
    },
    "AnalysisRuleColumnList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"}
    },
    "AnalysisRuleColumnName":{
      "type":"string",
      "max":127,
      "min":1,
      "pattern":"[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?"
    },
    "AnalysisRuleColumnNameList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"}
    },
    "AnalysisRuleCustom":{
      "type":"structure",
      "required":["allowedAnalyses"],
      "members":{
        "allowedAnalyses":{
          "shape":"AnalysisRuleCustomAllowedAnalysesList",
          "documentation":"<p>The ARN of the analysis templates that are allowed by the custom analysis rule.</p>"
        },
        "allowedAnalysisProviders":{
          "shape":"AnalysisRuleCustomAllowedAnalysisProvidersList",
          "documentation":"<p>The IDs of the Amazon Web Services accounts that are allowed to query by the custom analysis rule. Required when <code>allowedAnalyses</code> is <code>ANY_QUERY</code>.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query.</p>"
        },
        "disallowedOutputColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p> A list of columns that aren't allowed to be shown in the query output.</p>"
        },
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyConfiguration",
          "documentation":"<p>The differential privacy configuration.</p>"
        },
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p>The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the configured table.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p>The list of allowed additional analyses for the custom analysis rule.</p>"
        }
      },
      "documentation":"<p>A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy.</p>"
    },
    "AnalysisRuleCustomAllowedAnalysesList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateArnOrQueryWildcard"},
      "min":0
    },
    "AnalysisRuleCustomAllowedAnalysisProvidersList":{
      "type":"list",
      "member":{"shape":"AccountId"},
      "min":0
    },
    "AnalysisRuleIdMappingTable":{
      "type":"structure",
      "required":[
        "joinColumns",
        "queryConstraints"
      ],
      "members":{
        "joinColumns":{
          "shape":"AnalysisRuleIdMappingTableJoinColumnsList",
          "documentation":"<p>The columns that query runners are allowed to use in an INNER JOIN statement.</p>"
        },
        "queryConstraints":{
          "shape":"QueryConstraintList",
          "documentation":"<p>The query constraints of the analysis rule ID mapping table.</p>"
        },
        "dimensionColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>The columns that query runners are allowed to select, group by, or filter by.</p>"
        }
      },
      "documentation":"<p>Defines details for the analysis rule ID mapping table.</p>"
    },
    "AnalysisRuleIdMappingTableJoinColumnsList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"},
      "max":2,
      "min":2
    },
    "AnalysisRuleList":{
      "type":"structure",
      "required":[
        "joinColumns",
        "listColumns"
      ],
      "members":{
        "joinColumns":{
          "shape":"AnalysisRuleListJoinColumnsList",
          "documentation":"<p>Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.</p>"
        },
        "allowedJoinOperators":{
          "shape":"JoinOperatorsList",
          "documentation":"<p>The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is <code>AND</code>.</p>"
        },
        "listColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>Columns that can be listed in the output.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query.</p>"
        }
      },
      "documentation":"<p>A type of analysis rule that enables row-level analysis.</p>"
    },
    "AnalysisRuleListJoinColumnsList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"},
      "min":1
    },
    "AnalysisRulePolicy":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"AnalysisRulePolicyV1",
          "documentation":"<p>Controls on the query specifications that can be run on configured table.</p>"
        }
      },
      "documentation":"<p>Controls on the query specifications that can be run on configured table.</p>",
      "union":true
    },
    "AnalysisRulePolicyV1":{
      "type":"structure",
      "members":{
        "list":{
          "shape":"AnalysisRuleList",
          "documentation":"<p>Analysis rule type that enables only list queries on a configured table.</p>"
        },
        "aggregation":{
          "shape":"AnalysisRuleAggregation",
          "documentation":"<p>Analysis rule type that enables only aggregation queries on a configured table.</p>"
        },
        "custom":{
          "shape":"AnalysisRuleCustom",
          "documentation":"<p>Analysis rule type that enables custom SQL queries on a configured table.</p>"
        },
        "idMappingTable":{
          "shape":"AnalysisRuleIdMappingTable",
          "documentation":"<p>The ID mapping table.</p>"
        }
      },
      "documentation":"<p>Controls on the query specifications that can be run on configured table.</p>",
      "union":true
    },
    "AnalysisRuleType":{
      "type":"string",
      "enum":[
        "AGGREGATION",
        "LIST",
        "CUSTOM",
        "ID_MAPPING_TABLE"
      ]
    },
    "AnalysisRuleTypeList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleType"}
    },
    "AnalysisSchema":{
      "type":"structure",
      "members":{
        "referencedTables":{
          "shape":"QueryTables",
          "documentation":"<p>The tables referenced in the analysis schema.</p>"
        }
      },
      "documentation":"<p>A relation within an analysis.</p>"
    },
    "AnalysisSource":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"AnalysisTemplateText",
          "documentation":"<p>The query text.</p>"
        },
        "artifacts":{
          "shape":"AnalysisTemplateArtifacts",
          "documentation":"<p> The artifacts of the analysis source.</p>"
        }
      },
      "documentation":"<p>The structure that defines the body of the analysis template.</p>",
      "union":true
    },
    "AnalysisSourceMetadata":{
      "type":"structure",
      "members":{
        "artifacts":{
          "shape":"AnalysisTemplateArtifactMetadata",
          "documentation":"<p> The artifacts of the analysis source metadata.</p>"
        }
      },
      "documentation":"<p>The analysis source metadata.</p>",
      "union":true
    },
    "AnalysisTemplate":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "membershipId",
        "membershipArn",
        "name",
        "createTime",
        "updateTime",
        "schema",
        "format",
        "source"
      ],
      "members":{
        "id":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier for the analysis template.</p>"
        },
        "arn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the associated collaboration of the analysis template.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the analysis template’s associated collaboration.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of a member who created the analysis template.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the member who created the analysis template.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the analysis template.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of the analysis template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template was last updated.</p>"
        },
        "schema":{
          "shape":"AnalysisSchema",
          "documentation":"<p>The entire schema object.</p>"
        },
        "format":{
          "shape":"AnalysisFormat",
          "documentation":"<p>The format of the analysis template.</p>"
        },
        "source":{
          "shape":"AnalysisSource",
          "documentation":"<p>The source of the analysis template.</p>"
        },
        "sourceMetadata":{
          "shape":"AnalysisSourceMetadata",
          "documentation":"<p> The source metadata for the analysis template.</p>"
        },
        "analysisParameters":{
          "shape":"AnalysisParameterList",
          "documentation":"<p>The parameters of the analysis template.</p>"
        },
        "validations":{
          "shape":"AnalysisTemplateValidationStatusDetailList",
          "documentation":"<p>Information about the validations performed on the analysis template.</p>"
        },
        "errorMessageConfiguration":{
          "shape":"ErrorMessageConfiguration",
          "documentation":"<p>The configuration that specifies the level of detail in error messages returned by analyses using this template. When set to <code>DETAILED</code>, error messages include more information to help troubleshoot issues with PySpark jobs. Detailed error messages may expose underlying data, including sensitive information. Recommended for faster troubleshooting in development and testing environments.</p>"
        },
        "syntheticDataParameters":{
          "shape":"SyntheticDataParameters",
          "documentation":"<p>The parameters used to generate synthetic data for this analysis template.</p>"
        }
      },
      "documentation":"<p>The analysis template.</p>"
    },
    "AnalysisTemplateArn":{
      "type":"string",
      "max":200,
      "min":0,
      "pattern":"arn:aws[-a-z]*:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+"
    },
    "AnalysisTemplateArnList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateArn"},
      "max":10,
      "min":1
    },
    "AnalysisTemplateArnOrQueryWildcard":{
      "type":"string",
      "max":200,
      "min":0,
      "pattern":"(ANY_QUERY|ANY_JOB|arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/analysistemplate/[\\d\\w-]+)"
    },
    "AnalysisTemplateArtifact":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"S3Location",
          "documentation":"<p> The artifact location.</p>"
        }
      },
      "documentation":"<p>The analysis template artifact.</p>"
    },
    "AnalysisTemplateArtifactList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateArtifact"},
      "max":1,
      "min":1
    },
    "AnalysisTemplateArtifactMetadata":{
      "type":"structure",
      "required":["entryPointHash"],
      "members":{
        "entryPointHash":{
          "shape":"Hash",
          "documentation":"<p> The hash of the entry point for the analysis template artifact metadata.</p>"
        },
        "additionalArtifactHashes":{
          "shape":"HashList",
          "documentation":"<p> Additional artifact hashes for the analysis template.</p>"
        }
      },
      "documentation":"<p>The analysis template artifact metadata.</p>"
    },
    "AnalysisTemplateArtifacts":{
      "type":"structure",
      "required":[
        "entryPoint",
        "roleArn"
      ],
      "members":{
        "entryPoint":{
          "shape":"AnalysisTemplateArtifact",
          "documentation":"<p> The entry point for the analysis template artifacts.</p>"
        },
        "additionalArtifacts":{
          "shape":"AnalysisTemplateArtifactList",
          "documentation":"<p> Additional artifacts for the analysis template.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p> The role ARN for the analysis template artifacts.</p>"
        }
      },
      "documentation":"<p>The analysis template artifacts.</p>"
    },
    "AnalysisTemplateIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "AnalysisTemplateSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createTime",
        "id",
        "name",
        "updateTime",
        "membershipArn",
        "membershipId",
        "collaborationArn",
        "collaborationId"
      ],
      "members":{
        "arn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template summary was created.</p>"
        },
        "id":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier of the analysis template.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of the analysis template. </p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template summary was last updated.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the member who created the analysis template.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier for a membership resource.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the analysis template summary’s associated collaboration.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the collaboration that the analysis template summary belongs to. Currently accepts collaboration ID.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the analysis template.</p>"
        },
        "isSyntheticData":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if this analysis template summary generated synthetic data.</p>"
        }
      },
      "documentation":"<p>The metadata of the analysis template.</p>"
    },
    "AnalysisTemplateSummaryList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateSummary"}
    },
    "AnalysisTemplateText":{
      "type":"string",
      "max":500000,
      "min":0,
      "sensitive":true
    },
    "AnalysisTemplateValidationStatus":{
      "type":"string",
      "enum":[
        "VALID",
        "INVALID",
        "UNABLE_TO_VALIDATE"
      ]
    },
    "AnalysisTemplateValidationStatusDetail":{
      "type":"structure",
      "required":[
        "type",
        "status"
      ],
      "members":{
        "type":{
          "shape":"AnalysisTemplateValidationType",
          "documentation":"<p>The type of validation that was performed.</p>"
        },
        "status":{
          "shape":"AnalysisTemplateValidationStatus",
          "documentation":"<p>The status of the validation.</p>"
        },
        "reasons":{
          "shape":"AnalysisTemplateValidationStatusReasonList",
          "documentation":"<p>The reasons for the validation results.</p>"
        }
      },
      "documentation":"<p>The status details of the analysis template validation. Clean Rooms Differential Privacy uses a general-purpose query structure to support complex SQL queries and validates whether an analysis template fits that general-purpose query structure. Validation is performed when analysis templates are created and fetched. Because analysis templates are immutable by design, we recommend that you create analysis templates after you associate the configured tables with their analysis rule to your collaboration.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy\">https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy</a>.</p>"
    },
    "AnalysisTemplateValidationStatusDetailList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateValidationStatusDetail"}
    },
    "AnalysisTemplateValidationStatusReason":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>The validation message.</p>"
        }
      },
      "documentation":"<p>The reasons for the validation results.</p>"
    },
    "AnalysisTemplateValidationStatusReasonList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateValidationStatusReason"}
    },
    "AnalysisTemplateValidationType":{
      "type":"string",
      "enum":["DIFFERENTIAL_PRIVACY"]
    },
    "AnalysisType":{
      "type":"string",
      "enum":[
        "DIRECT_ANALYSIS",
        "ADDITIONAL_ANALYSIS"
      ]
    },
    "AnalyticsEngine":{
      "type":"string",
      "enum":[
        "SPARK",
        "CLEAN_ROOMS_SQL"
      ]
    },
    "ApprovalStatus":{
      "type":"string",
      "enum":[
        "APPROVED",
        "DENIED",
        "PENDING"
      ]
    },
    "ApprovalStatusDetails":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"ApprovalStatus",
          "documentation":"<p>The approval status of a member's vote on the change request. Valid values are PENDING (if they haven't voted), APPROVED, or DENIED.</p>"
        }
      },
      "documentation":"<p>Contains detailed information about the approval state of a given member in the collaboration for a given collaboration change request.</p>"
    },
    "ApprovalStatuses":{
      "type":"map",
      "key":{"shape":"AccountId"},
      "value":{"shape":"ApprovalStatusDetails"},
      "max":50,
      "min":1
    },
    "AthenaCatalogName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "AthenaDatabaseName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?"
    },
    "AthenaOutputLocation":{
      "type":"string",
      "max":1024,
      "min":8,
      "pattern":"s3://[a-z0-9.-]{3,63}(.*)"
    },
    "AthenaTableName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_]+)*([a-zA-Z0-9_]+))?"
    },
    "AthenaTableReference":{
      "type":"structure",
      "required":[
        "workGroup",
        "databaseName",
        "tableName"
      ],
      "members":{
        "region":{
          "shape":"CommercialRegion",
          "documentation":"<p>The Amazon Web Services Region where the Athena table is located. This parameter is required to uniquely identify and access tables across different Regions.</p>"
        },
        "workGroup":{
          "shape":"AthenaWorkGroup",
          "documentation":"<p> The workgroup of the Athena table reference.</p>"
        },
        "outputLocation":{
          "shape":"AthenaOutputLocation",
          "documentation":"<p> The output location for the Athena table.</p>"
        },
        "databaseName":{
          "shape":"AthenaDatabaseName",
          "documentation":"<p> The database name.</p>"
        },
        "tableName":{
          "shape":"AthenaTableName",
          "documentation":"<p> The table reference.</p>"
        },
        "catalogName":{
          "shape":"AthenaCatalogName",
          "documentation":"<p> The catalog name.</p>"
        }
      },
      "documentation":"<p> A reference to a table within Athena.</p>"
    },
    "AthenaWorkGroup":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"([a-zA-Z0-9._-])*"
    },
    "AutoApprovedChangeType":{
      "type":"string",
      "enum":[
        "ADD_MEMBER",
        "GRANT_RECEIVE_RESULTS_ABILITY",
        "REVOKE_RECEIVE_RESULTS_ABILITY"
      ]
    },
    "AutoApprovedChangeTypeList":{
      "type":"list",
      "member":{"shape":"AutoApprovedChangeType"}
    },
    "AutoRefreshMode":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "BaseTableDependencyType":{
      "type":"string",
      "enum":[
        "TABLE",
        "INTERMEDIATE_TABLE",
        "ID_MAPPING_TABLE"
      ]
    },
    "BaseTableParentType":{
      "type":"string",
      "enum":[
        "DIRECT",
        "INDIRECT"
      ]
    },
    "BatchGetCollaborationAnalysisTemplateError":{
      "type":"structure",
      "required":[
        "arn",
        "code",
        "message"
      ],
      "members":{
        "arn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>An error code for the error.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A description of why the call failed.</p>"
        }
      },
      "documentation":"<p>Details of errors thrown by the call to retrieve multiple analysis templates within a collaboration by their identifiers.</p>"
    },
    "BatchGetCollaborationAnalysisTemplateErrorList":{
      "type":"list",
      "member":{"shape":"BatchGetCollaborationAnalysisTemplateError"},
      "max":10,
      "min":0
    },
    "BatchGetCollaborationAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "analysisTemplateArns"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "analysisTemplateArns":{
          "shape":"AnalysisTemplateArnList",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the analysis template within a collaboration.</p>"
        }
      }
    },
    "BatchGetCollaborationAnalysisTemplateOutput":{
      "type":"structure",
      "required":[
        "collaborationAnalysisTemplates",
        "errors"
      ],
      "members":{
        "collaborationAnalysisTemplates":{
          "shape":"CollaborationAnalysisTemplateList",
          "documentation":"<p>The retrieved list of analysis templates within a collaboration.</p>"
        },
        "errors":{
          "shape":"BatchGetCollaborationAnalysisTemplateErrorList",
          "documentation":"<p>Error reasons for collaboration analysis templates that could not be retrieved. One error is returned for every collaboration analysis template that could not be retrieved.</p>"
        }
      }
    },
    "BatchGetSchemaAnalysisRuleError":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "code",
        "message"
      ],
      "members":{
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>An error name for the error.</p>"
        },
        "type":{
          "shape":"AnalysisRuleType",
          "documentation":"<p>The analysis rule type.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>An error code for the error.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A description of why the call failed.</p>"
        }
      },
      "documentation":"<p>An error that describes why a schema could not be fetched.</p>"
    },
    "BatchGetSchemaAnalysisRuleErrorList":{
      "type":"list",
      "member":{"shape":"BatchGetSchemaAnalysisRuleError"},
      "max":25,
      "min":0
    },
    "BatchGetSchemaAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "schemaAnalysisRuleRequests"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration that contains the schema analysis rule.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "schemaAnalysisRuleRequests":{
          "shape":"SchemaAnalysisRuleRequestList",
          "documentation":"<p>The information that's necessary to retrieve a schema analysis rule.</p>"
        }
      }
    },
    "BatchGetSchemaAnalysisRuleOutput":{
      "type":"structure",
      "required":[
        "analysisRules",
        "errors"
      ],
      "members":{
        "analysisRules":{
          "shape":"SchemaAnalysisRuleList",
          "documentation":"<p>The retrieved list of analysis rules.</p>"
        },
        "errors":{
          "shape":"BatchGetSchemaAnalysisRuleErrorList",
          "documentation":"<p>Error reasons for schemas that could not be retrieved. One error is returned for every schema that could not be retrieved.</p>"
        }
      }
    },
    "BatchGetSchemaError":{
      "type":"structure",
      "required":[
        "name",
        "code",
        "message"
      ],
      "members":{
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>An error name for the error.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>An error code for the error. </p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>An error message for the error.</p>"
        }
      },
      "documentation":"<p>An error describing why a schema could not be fetched.</p>"
    },
    "BatchGetSchemaErrorList":{
      "type":"list",
      "member":{"shape":"BatchGetSchemaError"},
      "max":25,
      "min":0
    },
    "BatchGetSchemaInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "names"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the schemas belong to. Currently accepts collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "names":{
          "shape":"TableAliasList",
          "documentation":"<p>The names for the schema objects to retrieve.</p>"
        }
      }
    },
    "BatchGetSchemaOutput":{
      "type":"structure",
      "required":[
        "schemas",
        "errors"
      ],
      "members":{
        "schemas":{
          "shape":"SchemaList",
          "documentation":"<p>The retrieved list of schemas.</p>"
        },
        "errors":{
          "shape":"BatchGetSchemaErrorList",
          "documentation":"<p>Error reasons for schemas that could not be retrieved. One error is returned for every schema that could not be retrieved.</p>"
        }
      }
    },
    "BilledJobResourceUtilization":{
      "type":"structure",
      "required":["units"],
      "members":{
        "units":{
          "shape":"Double",
          "documentation":"<p> The number of Clean Rooms Processing Unit (CRPU) hours that have been billed.</p>"
        }
      },
      "documentation":"<p> Information related to the utilization of resources that have been billed or charged for in a given context, such as a protected job.</p>"
    },
    "BilledResourceUtilization":{
      "type":"structure",
      "required":["units"],
      "members":{
        "units":{
          "shape":"Double",
          "documentation":"<p> The number of Clean Rooms Processing Unit (CRPU) hours that have been billed.</p>"
        }
      },
      "documentation":"<p> Information related to the utilization of resources that have been billed or charged for in a given context, such as a protected query.</p>"
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "Budget":{
      "type":"integer",
      "box":true,
      "max":1000000,
      "min":0
    },
    "BudgetParameter":{
      "type":"structure",
      "required":[
        "type",
        "budget"
      ],
      "members":{
        "type":{
          "shape":"AccessBudgetType",
          "documentation":"<p>The type of budget parameter being configured.</p>"
        },
        "budget":{
          "shape":"Budget",
          "documentation":"<p>The budget allocation amount for this specific parameter.</p>"
        },
        "autoRefresh":{
          "shape":"AutoRefreshMode",
          "documentation":"<p>Whether this individual budget parameter automatically refreshes when the budget period resets.</p>"
        }
      },
      "documentation":"<p>Individual budget parameter configuration that defines specific budget allocation settings for access budgets.</p>"
    },
    "BudgetParameters":{
      "type":"list",
      "member":{"shape":"BudgetParameter"},
      "max":2,
      "min":1
    },
    "BudgetedResourceArn":{
      "type":"string",
      "max":200,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/(configuredtableassociation|intermediatetable)/[\\d\\w-]+"
    },
    "Change":{
      "type":"structure",
      "required":[
        "specificationType",
        "specification",
        "types"
      ],
      "members":{
        "specificationType":{
          "shape":"ChangeSpecificationType",
          "documentation":"<p>The type of specification for this change.</p>"
        },
        "specification":{
          "shape":"ChangeSpecification",
          "documentation":"<p>The specification details for this change.</p>"
        },
        "types":{
          "shape":"ChangeTypeList",
          "documentation":"<p>The list of change types that were applied.</p>"
        }
      },
      "documentation":"<p>Represents a single change within a collaboration change request, containing the change identifier and specification.</p>"
    },
    "ChangeInput":{
      "type":"structure",
      "required":[
        "specificationType",
        "specification"
      ],
      "members":{
        "specificationType":{
          "shape":"ChangeSpecificationType",
          "documentation":"<p>The type of specification for the change. Currently supports <code>MEMBER</code> for member-related changes.</p>"
        },
        "specification":{
          "shape":"ChangeSpecification",
          "documentation":"<p>The specification details for the change. The structure depends on the specification type.</p>"
        }
      },
      "documentation":"<p>Specifies a change to apply to a collaboration.</p>"
    },
    "ChangeInputList":{
      "type":"list",
      "member":{"shape":"ChangeInput"},
      "max":10,
      "min":1
    },
    "ChangeList":{
      "type":"list",
      "member":{"shape":"Change"},
      "max":10,
      "min":1
    },
    "ChangeRequestAction":{
      "type":"string",
      "enum":[
        "APPROVE",
        "DENY",
        "CANCEL",
        "COMMIT"
      ]
    },
    "ChangeRequestStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "APPROVED",
        "CANCELLED",
        "DENIED",
        "COMMITTED"
      ]
    },
    "ChangeSpecification":{
      "type":"structure",
      "members":{
        "member":{
          "shape":"MemberChangeSpecification",
          "documentation":"<p>The member change specification when the change type is <code>MEMBER</code>.</p>"
        },
        "collaboration":{
          "shape":"CollaborationChangeSpecification",
          "documentation":"<p>The collaboration configuration changes being requested. Currently, this only supports modifying which change types are auto-approved for the collaboration.</p>"
        }
      },
      "documentation":"<p>A union that contains the specification details for different types of changes.</p>",
      "union":true
    },
    "ChangeSpecificationType":{
      "type":"string",
      "enum":[
        "MEMBER",
        "COLLABORATION"
      ]
    },
    "ChangeType":{
      "type":"string",
      "enum":[
        "ADD_MEMBER",
        "GRANT_RECEIVE_RESULTS_ABILITY",
        "REVOKE_RECEIVE_RESULTS_ABILITY",
        "EDIT_AUTO_APPROVED_CHANGE_TYPES",
        "ADD_PAYER_CANDIDATE",
        "REMOVE_PAYER_CANDIDATE",
        "GRANT_CAN_RECEIVE_MODEL_OUTPUT",
        "GRANT_CAN_RECEIVE_INFERENCE_OUTPUT",
        "REVOKE_CAN_RECEIVE_MODEL_OUTPUT",
        "REVOKE_CAN_RECEIVE_INFERENCE_OUTPUT"
      ]
    },
    "ChangeTypeList":{
      "type":"list",
      "member":{"shape":"ChangeType"},
      "min":1
    },
    "ChildResource":{
      "type":"structure",
      "required":[
        "resourceType",
        "resourceName",
        "ownerAccountId"
      ],
      "members":{
        "resourceId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the child resource.</p>"
        },
        "resourceType":{
          "shape":"ChildResourceType",
          "documentation":"<p>The type of the child resource.</p>"
        },
        "resourceName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the child resource.</p>"
        },
        "ownerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member who owns the child resource.</p>"
        },
        "resourceStatus":{
          "shape":"ResourceStatus",
          "documentation":"<p>The current status of the child resource.</p>"
        }
      },
      "documentation":"<p>Contains information about a child resource of a given resource in a collaboration.</p>"
    },
    "ChildResourceList":{
      "type":"list",
      "member":{"shape":"ChildResource"}
    },
    "ChildResourceType":{
      "type":"string",
      "enum":["INTERMEDIATE_TABLE"]
    },
    "CleanroomsArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:[\\d\\w/-]+"
    },
    "Collaboration":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "creatorAccountId",
        "creatorDisplayName",
        "createTime",
        "updateTime",
        "memberStatus",
        "queryLogStatus"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the collaboration.</p>"
        },
        "arn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the collaboration.</p>"
        },
        "name":{
          "shape":"CollaborationName",
          "documentation":"<p>A human-readable identifier provided by the collaboration owner. Display names are not unique.</p>"
        },
        "description":{
          "shape":"CollaborationDescription",
          "documentation":"<p>A description of the collaboration provided by the collaboration owner.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "creatorDisplayName":{
          "shape":"DisplayName",
          "documentation":"<p>A display name of the collaboration creator.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the collaboration was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the collaboration metadata was last updated.</p>"
        },
        "memberStatus":{
          "shape":"MemberStatus",
          "documentation":"<p>The status of a member in a collaboration.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for your membership within the collaboration.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for your membership within the collaboration.</p>"
        },
        "dataEncryptionMetadata":{
          "shape":"DataEncryptionMetadata",
          "documentation":"<p>The settings for client-side encryption for cryptographic computing.</p>"
        },
        "queryLogStatus":{
          "shape":"CollaborationQueryLogStatus",
          "documentation":"<p>An indicator as to whether query logging has been enabled or disabled for the collaboration.</p> <p>When <code>ENABLED</code>, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "jobLogStatus":{
          "shape":"CollaborationJobLogStatus",
          "documentation":"<p>An indicator as to whether job logging has been enabled or disabled for the collaboration. </p> <p>When <code>ENABLED</code>, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "analyticsEngine":{
          "shape":"AnalyticsEngine",
          "documentation":"<p> The analytics engine for the collaboration.</p> <note> <p>After July 16, 2025, the <code>CLEAN_ROOMS_SQL</code> parameter will no longer be available. </p> </note>"
        },
        "autoApprovedChangeTypes":{
          "shape":"AutoApprovedChangeTypeList",
          "documentation":"<p>The types of change requests that are automatically approved for this collaboration.</p>"
        },
        "allowedResultRegions":{
          "shape":"AllowedResultRegions",
          "documentation":"<p>The Amazon Web Services Regions where collaboration query results can be stored. Returns the list of Region identifiers that were specified when the collaboration was created. This list is used to enforce regional storage policies and compliance requirements.</p>"
        },
        "isMetricsEnabled":{
          "shape":"Boolean",
          "documentation":"<p>An indicator as to whether metrics are enabled for the collaboration.</p> <p>When <code>true</code>, collaboration members can opt in to Amazon CloudWatch metrics for their membership queries.</p>"
        }
      },
      "documentation":"<p>The multi-party data share environment. The collaboration contains metadata about its purpose and participants.</p>"
    },
    "CollaborationAnalysisTemplate":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "creatorAccountId",
        "name",
        "createTime",
        "updateTime",
        "schema",
        "format"
      ],
      "members":{
        "id":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier of the analysis template.</p>"
        },
        "arn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the analysis template’s associated collaboration.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the analysis template.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of the analysis template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template within a collaboration was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the analysis template in the collaboration was last updated.</p>"
        },
        "schema":{
          "shape":"AnalysisSchema",
          "documentation":"<p>The entire schema object.</p>"
        },
        "format":{
          "shape":"AnalysisFormat",
          "documentation":"<p>The format of the analysis template in the collaboration.</p>"
        },
        "source":{
          "shape":"AnalysisSource",
          "documentation":"<p>The source of the analysis template within a collaboration.</p>"
        },
        "sourceMetadata":{
          "shape":"AnalysisSourceMetadata",
          "documentation":"<p> The source metadata for the collaboration analysis template.</p>"
        },
        "analysisParameters":{
          "shape":"AnalysisParameterList",
          "documentation":"<p>The analysis parameters that have been specified in the analysis template.</p>"
        },
        "validations":{
          "shape":"AnalysisTemplateValidationStatusDetailList",
          "documentation":"<p>The validations that were performed.</p>"
        },
        "errorMessageConfiguration":{
          "shape":"ErrorMessageConfiguration",
          "documentation":"<p>The configuration that specifies the level of detail in error messages returned by analyses using this template. When set to <code>DETAILED</code>, error messages include more information to help troubleshoot issues with PySpark jobs. Detailed error messages may expose underlying data, including sensitive information. Recommended for faster troubleshooting in development and testing environments.</p>"
        },
        "syntheticDataParameters":{
          "shape":"SyntheticDataParameters",
          "documentation":"<p>The synthetic data generation parameters configured for this collaboration analysis template.</p>"
        }
      },
      "documentation":"<p>The analysis template within a collaboration.</p>"
    },
    "CollaborationAnalysisTemplateList":{
      "type":"list",
      "member":{"shape":"CollaborationAnalysisTemplate"},
      "max":10,
      "min":0
    },
    "CollaborationAnalysisTemplateSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createTime",
        "id",
        "name",
        "updateTime",
        "collaborationArn",
        "collaborationId",
        "creatorAccountId"
      ],
      "members":{
        "arn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the summary of the analysis template in a collaboration was created.</p>"
        },
        "id":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier of the analysis template.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of the analysis template.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the summary of the analysis template in the collaboration was last updated.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the analysis template’s associated collaboration.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the analysis template.</p>"
        },
        "isSyntheticData":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if this collaboration analysis template uses synthetic data generation.</p>"
        }
      },
      "documentation":"<p>The metadata of the analysis template within a collaboration.</p>"
    },
    "CollaborationAnalysisTemplateSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationAnalysisTemplateSummary"}
    },
    "CollaborationArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:collaboration/[\\d\\w-]+"
    },
    "CollaborationChangeRequest":{
      "type":"structure",
      "required":[
        "id",
        "collaborationId",
        "createTime",
        "updateTime",
        "status",
        "isAutoApproved",
        "changes"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier for the change request.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier for the collaboration being modified.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the change request was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the change request was last updated.</p>"
        },
        "status":{
          "shape":"ChangeRequestStatus",
          "documentation":"<p>The current status of the change request. Valid values are <code>PENDING</code>, <code>APPROVED</code>, <code>DENIED</code>, <code>COMMITTED</code>, and <code>CANCELLED</code>.</p>"
        },
        "isAutoApproved":{
          "shape":"Boolean",
          "documentation":"<p>Whether the change request was automatically approved based on the collaboration's auto-approval settings.</p>"
        },
        "changes":{
          "shape":"ChangeList",
          "documentation":"<p>The list of changes specified in this change request.</p>"
        },
        "approvals":{
          "shape":"ApprovalStatuses",
          "documentation":"<p>A list of approval details from collaboration members, including approval status and multi-party approval workflow information.</p>"
        }
      },
      "documentation":"<p>Represents a request to modify a collaboration. Change requests enable structured modifications to collaborations after they have been created.</p>"
    },
    "CollaborationChangeRequestIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "CollaborationChangeRequestSummary":{
      "type":"structure",
      "required":[
        "id",
        "collaborationId",
        "createTime",
        "updateTime",
        "status",
        "isAutoApproved",
        "changes"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier for the change request.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier for the collaboration.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the change request was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the change request was last updated.</p>"
        },
        "status":{
          "shape":"ChangeRequestStatus",
          "documentation":"<p>The current status of the change request.</p>"
        },
        "isAutoApproved":{
          "shape":"Boolean",
          "documentation":"<p>Whether the change request was automatically approved.</p>"
        },
        "changes":{
          "shape":"ChangeList",
          "documentation":"<p>Summary of the changes in this change request.</p>"
        },
        "approvals":{
          "shape":"ApprovalStatuses",
          "documentation":"<p>Summary of approval statuses from all collaboration members for this change request.</p>"
        }
      },
      "documentation":"<p>Summary information about a collaboration change request.</p>"
    },
    "CollaborationChangeRequestSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationChangeRequestSummary"}
    },
    "CollaborationChangeSpecification":{
      "type":"structure",
      "members":{
        "autoApprovedChangeTypes":{
          "shape":"AutoApprovedChangeTypeList",
          "documentation":"<p>Defines requested updates to properties of the collaboration. Currently, this only supports modifying which change types are auto-approved for the collaboration.</p>"
        }
      },
      "documentation":"<p>Defines the specific changes being requested for a collaboration, including configuration modifications and approval requirements.</p>"
    },
    "CollaborationConfiguredAudienceModelAssociation":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "configuredAudienceModelArn",
        "name",
        "creatorAccountId",
        "createTime",
        "updateTime"
      ],
      "members":{
        "id":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>The identifier of the configured audience model association.</p>"
        },
        "arn":{
          "shape":"ConfiguredAudienceModelAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the collaboration that the configured audience model associations belong to. Accepts collaboration ID.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the configured audience model's associated collaboration.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configure audience model.</p>"
        },
        "name":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>The name of the configured audience model association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model association.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Only supports Amazon Web Services account ID.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the configured audience model association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the configured audience model association was updated.</p>"
        }
      },
      "documentation":"<p>The configured audience model association within a collaboration.</p>"
    },
    "CollaborationConfiguredAudienceModelAssociationSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createTime",
        "id",
        "name",
        "updateTime",
        "collaborationArn",
        "collaborationId",
        "creatorAccountId"
      ],
      "members":{
        "arn":{
          "shape":"ConfiguredAudienceModelAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the configured audience model association was created.</p>"
        },
        "id":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>The identifier of the configured audience model association.</p>"
        },
        "name":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>The name of the configured audience model association.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the configured audience model association was updated.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the configured audience model's associated collaboration.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the collaboration that the configured audience model associations belong to. Accepts collaboration ID.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Only supports Amazon Web Services account ID.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model association.</p>"
        }
      },
      "documentation":"<p>A summary of the configured audience model association in the collaboration.</p>"
    },
    "CollaborationConfiguredAudienceModelAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationConfiguredAudienceModelAssociationSummary"}
    },
    "CollaborationDescription":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"(?!\\s+$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*"
    },
    "CollaborationIdNamespaceAssociation":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "name",
        "creatorAccountId",
        "createTime",
        "updateTime",
        "inputReferenceConfig",
        "inputReferenceProperties"
      ],
      "members":{
        "id":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration ID namespace association.</p>"
        },
        "arn":{
          "shape":"IdNamespaceAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration ID namespace association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains the collaboration ID namespace association.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains the collaboration ID namespace association.</p>"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>The name of the collaboration ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the collaboration ID namespace association.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the Amazon Web Services account that created the collaboration ID namespace association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the collaboration ID namespace association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the collaboration ID namespace was updated.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdNamespaceAssociationInputReferenceConfig",
          "documentation":"<p>The input reference configuration that's necessary to create the collaboration ID namespace association.</p>"
        },
        "inputReferenceProperties":{
          "shape":"IdNamespaceAssociationInputReferenceProperties",
          "documentation":"<p>The input reference properties that are needed to create the collaboration ID namespace association.</p>"
        },
        "idMappingConfig":{"shape":"IdMappingConfig"}
      },
      "documentation":"<p>Defines details for the collaboration ID namespace association.</p>"
    },
    "CollaborationIdNamespaceAssociationSummary":{
      "type":"structure",
      "required":[
        "arn",
        "createTime",
        "id",
        "updateTime",
        "collaborationArn",
        "collaborationId",
        "creatorAccountId",
        "inputReferenceConfig",
        "name",
        "inputReferenceProperties"
      ],
      "members":{
        "arn":{
          "shape":"IdNamespaceAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration ID namespace association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the collaboration ID namespace association was created.</p>"
        },
        "id":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration ID namespace association.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the collaboration ID namespace association was updated.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this collaboration ID namespace association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this collaboration ID namespace association.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account that created this collaboration ID namespace association.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdNamespaceAssociationInputReferenceConfig",
          "documentation":"<p>The input reference configuration that's used to create the collaboration ID namespace association.</p>"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>The name of the collaboration ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the collaboration ID namepsace association.</p>"
        },
        "inputReferenceProperties":{
          "shape":"IdNamespaceAssociationInputReferencePropertiesSummary",
          "documentation":"<p>The input reference properties that are used to create the collaboration ID namespace association.</p>"
        }
      },
      "documentation":"<p>Provides summary information about the collaboration ID namespace association.</p>"
    },
    "CollaborationIdNamespaceAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationIdNamespaceAssociationSummary"}
    },
    "CollaborationIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "CollaborationJobLogStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "CollaborationName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "CollaborationPrivacyBudgetSummary":{
      "type":"structure",
      "required":[
        "id",
        "privacyBudgetTemplateId",
        "privacyBudgetTemplateArn",
        "collaborationId",
        "collaborationArn",
        "creatorAccountId",
        "type",
        "createTime",
        "updateTime",
        "budget"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration privacy budget.</p>"
        },
        "privacyBudgetTemplateId":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the collaboration privacy budget template.</p>"
        },
        "privacyBudgetTemplateArn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the collaboration privacy budget template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that includes this privacy budget.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that includes this privacy budget.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that created this privacy budget.</p>"
        },
        "type":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>The type of privacy budget template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the privacy budget was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the privacy budget was updated.</p>"
        },
        "budget":{
          "shape":"PrivacyBudget",
          "documentation":"<p>The includes epsilon provided and utility in terms of aggregations.</p>"
        }
      },
      "documentation":"<p>A summary of the collaboration privacy budgets. This summary includes the collaboration information, creation information, epsilon provided, and utility in terms of aggregations.</p>"
    },
    "CollaborationPrivacyBudgetSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationPrivacyBudgetSummary"}
    },
    "CollaborationPrivacyBudgetTemplate":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "creatorAccountId",
        "createTime",
        "updateTime",
        "privacyBudgetType",
        "autoRefresh",
        "parameters"
      ],
      "members":{
        "id":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the collaboration privacy budget template.</p>"
        },
        "arn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the collaboration privacy budget template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that includes this collaboration privacy budget template.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that includes this collaboration privacy budget template.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that created this collaboration privacy budget template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the collaboration privacy budget template was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the collaboration privacy budget template was updated.</p>"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>The type of privacy budget template.</p>"
        },
        "autoRefresh":{
          "shape":"PrivacyBudgetTemplateAutoRefresh",
          "documentation":"<p>How often the privacy budget refreshes.</p> <important> <p>If you plan to regularly bring new data into the collaboration, use <code>CALENDAR_MONTH</code> to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.</p> </important>"
        },
        "parameters":{
          "shape":"PrivacyBudgetTemplateParametersOutput",
          "documentation":"<p>Specifies the epsilon and noise parameters for the privacy budget template.</p>"
        }
      },
      "documentation":"<p>An array that specifies the information for a collaboration's privacy budget template.</p>"
    },
    "CollaborationPrivacyBudgetTemplateSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationId",
        "collaborationArn",
        "creatorAccountId",
        "privacyBudgetType",
        "createTime",
        "updateTime"
      ],
      "members":{
        "id":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the collaboration privacy budget template.</p>"
        },
        "arn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the collaboration privacy budget template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this collaboration privacy budget template.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that contains this collaboration privacy budget template.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier of the account that created this collaboration privacy budget template.</p>"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>The type of the privacy budget template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the collaboration privacy budget template was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the collaboration privacy budget template was updated.</p>"
        }
      },
      "documentation":"<p>A summary of the collaboration's privacy budget template. This summary includes information about who created the privacy budget template and what collaborations it belongs to.</p>"
    },
    "CollaborationPrivacyBudgetTemplateSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationPrivacyBudgetTemplateSummary"}
    },
    "CollaborationQueryLogStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "CollaborationSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "creatorAccountId",
        "creatorDisplayName",
        "createTime",
        "updateTime",
        "memberStatus"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The identifier for the collaboration.</p>"
        },
        "arn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration.</p>"
        },
        "name":{
          "shape":"CollaborationName",
          "documentation":"<p>A human-readable identifier provided by the collaboration owner. Display names are not unique.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "creatorDisplayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the collaboration creator.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the collaboration was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the collaboration metadata was last updated.</p>"
        },
        "memberStatus":{
          "shape":"MemberStatus",
          "documentation":"<p>The status of a member in a collaboration.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier of a member in a collaboration.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The ARN of a member in a collaboration.</p>"
        },
        "analyticsEngine":{
          "shape":"AnalyticsEngine",
          "documentation":"<p> The analytics engine.</p> <note> <p>After July 16, 2025, the <code>CLEAN_ROOMS_SQL</code> parameter will no longer be available. </p> </note>"
        }
      },
      "documentation":"<p>The metadata of the collaboration.</p>"
    },
    "CollaborationSummaryList":{
      "type":"list",
      "member":{"shape":"CollaborationSummary"}
    },
    "Column":{
      "type":"structure",
      "required":[
        "name",
        "type"
      ],
      "members":{
        "name":{
          "shape":"ColumnName",
          "documentation":"<p>The name of the column.</p>"
        },
        "type":{
          "shape":"ColumnTypeString",
          "documentation":"<p>The type of the column.</p>"
        }
      },
      "documentation":"<p>A column within a schema relation, derived from the underlying table.</p>"
    },
    "ColumnClassificationDetails":{
      "type":"structure",
      "required":["columnMapping"],
      "members":{
        "columnMapping":{
          "shape":"ColumnMappingList",
          "documentation":"<p>A mapping that defines the classification of data columns for synthetic data generation and specifies how each column should be handled during the privacy-preserving data synthesis process.</p>"
        }
      },
      "documentation":"<p>Contains classification information for data columns, including mappings that specify how columns should be handled during synthetic data generation and privacy analysis.</p>"
    },
    "ColumnLineageEntry":{
      "type":"structure",
      "required":[
        "column",
        "sourceColumn",
        "sourceName",
        "sourceId",
        "sourceType",
        "sourceAccountId"
      ],
      "members":{
        "column":{
          "shape":"AnalysisRuleColumnName",
          "documentation":"<p>The name of the column in the intermediate table.</p>"
        },
        "sourceColumn":{
          "shape":"AnalysisRuleColumnName",
          "documentation":"<p>The name of the column in the source table.</p>"
        },
        "sourceName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the source table.</p>"
        },
        "sourceId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the source table.</p>"
        },
        "sourceType":{
          "shape":"BaseTableDependencyType",
          "documentation":"<p>The type of the source table.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the owner of the source table.</p>"
        }
      },
      "documentation":"<p>Contains column lineage information that traces a disallowed output column back to its source in a base table.</p>"
    },
    "ColumnLineageList":{
      "type":"list",
      "member":{"shape":"ColumnLineageEntry"}
    },
    "ColumnList":{
      "type":"list",
      "member":{"shape":"Column"}
    },
    "ColumnMappingList":{
      "type":"list",
      "member":{"shape":"SyntheticDataColumnProperties"},
      "max":1000,
      "min":5
    },
    "ColumnName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-z0-9_](([a-z0-9_ ]+-)*([a-z0-9_ ]+))?"
    },
    "ColumnTypeString":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "CommercialRegion":{
      "type":"string",
      "enum":[
        "us-west-1",
        "us-west-2",
        "us-east-1",
        "us-east-2",
        "af-south-1",
        "ap-east-1",
        "ap-south-2",
        "ap-southeast-1",
        "ap-southeast-2",
        "ap-southeast-3",
        "ap-southeast-5",
        "ap-southeast-4",
        "ap-southeast-7",
        "ap-south-1",
        "ap-northeast-3",
        "ap-northeast-1",
        "ap-northeast-2",
        "ca-central-1",
        "ca-west-1",
        "eu-south-1",
        "eu-west-3",
        "eu-south-2",
        "eu-central-2",
        "eu-central-1",
        "eu-north-1",
        "eu-west-1",
        "eu-west-2",
        "me-south-1",
        "me-central-1",
        "il-central-1",
        "sa-east-1",
        "mx-central-1",
        "ap-east-2"
      ]
    },
    "ComputeConfiguration":{
      "type":"structure",
      "members":{
        "worker":{
          "shape":"WorkerComputeConfiguration",
          "documentation":"<p> The worker configuration for the compute environment.</p>"
        }
      },
      "documentation":"<p> The configuration of the compute resources for an analysis with the Spark analytics engine.</p>",
      "union":true
    },
    "ConfigurationDetails":{
      "type":"structure",
      "members":{
        "directAnalysisConfigurationDetails":{
          "shape":"DirectAnalysisConfigurationDetails",
          "documentation":"<p> The direct analysis configuration details.</p>"
        }
      },
      "documentation":"<p> The configuration details.</p>",
      "union":true
    },
    "ConfiguredAudienceModelArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws[-a-z]*:cleanrooms-ml:[-a-z0-9]+:[0-9]{12}:configured-audience-model/[-a-zA-Z0-9_/.]+"
    },
    "ConfiguredAudienceModelAssociation":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "configuredAudienceModelArn",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "name",
        "manageResourcePolicies",
        "createTime",
        "updateTime"
      ],
      "members":{
        "id":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>A unique identifier of the configured audience model association.</p>"
        },
        "arn":{
          "shape":"ConfiguredAudienceModelAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model association.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that was used for this configured audience model association.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier for the membership that contains this configured audience model association.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership that contains this configured audience model association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier of the collaboration that contains this configured audience model association.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this configured audience model association.</p>"
        },
        "name":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>The name of the configured audience model association.</p>"
        },
        "manageResourcePolicies":{
          "shape":"Boolean",
          "documentation":"<p>When <code>TRUE</code>, indicates that the resource policy for the configured audience model resource being associated is configured for Clean Rooms to manage permissions related to the given collaboration. When <code>FALSE</code>, indicates that the configured audience model resource owner will manage permissions related to the given collaboration.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the configured audience model association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the configured audience model association was updated.</p>"
        }
      },
      "documentation":"<p>Details about the configured audience model association.</p>"
    },
    "ConfiguredAudienceModelAssociationArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/configuredaudiencemodelassociation/[\\d\\w-]+"
    },
    "ConfiguredAudienceModelAssociationIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ConfiguredAudienceModelAssociationName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "ConfiguredAudienceModelAssociationSummary":{
      "type":"structure",
      "required":[
        "membershipId",
        "membershipArn",
        "collaborationArn",
        "collaborationId",
        "createTime",
        "updateTime",
        "id",
        "arn",
        "name",
        "configuredAudienceModelArn"
      ],
      "members":{
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier of the membership that contains the configured audience model association.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership that contains the configured audience model association.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains the configured audience model association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier of the collaboration that configured audience model is associated with.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the configured audience model association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the configured audience model association was updated.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>A unique identifier of the configured audience model association.</p>"
        },
        "arn":{
          "shape":"ConfiguredAudienceModelAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model association.</p>"
        },
        "name":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>The name of the configured audience model association.</p>"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the configured audience model that was used for this configured audience model association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the configured audience model association.</p>"
        }
      },
      "documentation":"<p>A summary of the configured audience model association.</p>"
    },
    "ConfiguredAudienceModelAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"ConfiguredAudienceModelAssociationSummary"}
    },
    "ConfiguredTable":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "tableReference",
        "createTime",
        "updateTime",
        "analysisRuleTypes",
        "analysisMethod",
        "allowedColumns"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the configured table.</p>"
        },
        "arn":{
          "shape":"ConfiguredTableArn",
          "documentation":"<p>The unique ARN for the configured table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>A name for the configured table.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A description for the configured table.</p>"
        },
        "tableReference":{
          "shape":"TableReference",
          "documentation":"<p>The table that this configured table represents.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table was last updated</p>"
        },
        "analysisRuleTypes":{
          "shape":"ConfiguredTableAnalysisRuleTypeList",
          "documentation":"<p>The types of analysis rules associated with this configured table. Currently, only one analysis rule may be associated with a configured table.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p>The analysis method for the configured table.</p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "allowedColumns":{
          "shape":"AllowedColumnList",
          "documentation":"<p>The columns within the underlying Glue table that can be used within collaborations.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The selected analysis methods for the configured table.</p>"
        }
      },
      "documentation":"<p>A table that has been configured for use in a collaboration.</p>"
    },
    "ConfiguredTableAnalysisRule":{
      "type":"structure",
      "required":[
        "configuredTableId",
        "configuredTableArn",
        "policy",
        "type",
        "createTime",
        "updateTime"
      ],
      "members":{
        "configuredTableId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the configured table.</p>"
        },
        "configuredTableArn":{
          "shape":"ConfiguredTableArn",
          "documentation":"<p>The unique ARN for the configured table.</p>"
        },
        "policy":{
          "shape":"ConfiguredTableAnalysisRulePolicy",
          "documentation":"<p>The policy that controls SQL query rules.</p>"
        },
        "type":{
          "shape":"ConfiguredTableAnalysisRuleType",
          "documentation":"<p>The type of configured table analysis rule.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table analysis rule was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table analysis rule was last updated.</p>"
        }
      },
      "documentation":"<p>A configured table analysis rule, which limits how data for this table can be used.</p>"
    },
    "ConfiguredTableAnalysisRulePolicy":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"ConfiguredTableAnalysisRulePolicyV1",
          "documentation":"<p>Controls on the query specifications that can be run on a configured table.</p>"
        }
      },
      "documentation":"<p>Controls on the query specifications that can be run on a configured table.</p>",
      "union":true
    },
    "ConfiguredTableAnalysisRulePolicyV1":{
      "type":"structure",
      "members":{
        "list":{
          "shape":"AnalysisRuleList",
          "documentation":"<p>Analysis rule type that enables only list queries on a configured table.</p>"
        },
        "aggregation":{
          "shape":"AnalysisRuleAggregation",
          "documentation":"<p>Analysis rule type that enables only aggregation queries on a configured table.</p>"
        },
        "custom":{"shape":"AnalysisRuleCustom"}
      },
      "documentation":"<p>Controls on the query specifications that can be run on a configured table.</p>",
      "union":true
    },
    "ConfiguredTableAnalysisRuleType":{
      "type":"string",
      "enum":[
        "AGGREGATION",
        "LIST",
        "CUSTOM"
      ]
    },
    "ConfiguredTableAnalysisRuleTypeList":{
      "type":"list",
      "member":{"shape":"ConfiguredTableAnalysisRuleType"}
    },
    "ConfiguredTableArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:configuredtable/[\\d\\w-]+"
    },
    "ConfiguredTableAssociation":{
      "type":"structure",
      "required":[
        "arn",
        "id",
        "configuredTableId",
        "configuredTableArn",
        "membershipId",
        "membershipArn",
        "roleArn",
        "name",
        "createTime",
        "updateTime"
      ],
      "members":{
        "arn":{
          "shape":"ConfiguredTableAssociationArn",
          "documentation":"<p>The unique ARN for the configured table association.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the configured table association.</p>"
        },
        "configuredTableId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the configured table that the association refers to.</p>"
        },
        "configuredTableArn":{
          "shape":"ConfiguredTableArn",
          "documentation":"<p>The unique ARN for the configured table that the association refers to.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the membership this configured table association belongs to.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership this configured table association belongs to.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The service will assume this role to access catalog metadata and query the table.</p>"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the configured table association, in lowercase. The table is identified by this name when running protected queries against the underlying data.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A description of the configured table association.</p>"
        },
        "analysisRuleTypes":{
          "shape":"ConfiguredTableAssociationAnalysisRuleTypeList",
          "documentation":"<p> The analysis rule types for the configured table association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table association was last updated.</p>"
        },
        "childResources":{
          "shape":"ChildResourceList",
          "documentation":"<p>The child resources that depend on this configured table association.</p>"
        }
      },
      "documentation":"<p>A configured table association links a configured table to a collaboration.</p>"
    },
    "ConfiguredTableAssociationAnalysisRule":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredTableAssociationId",
        "configuredTableAssociationArn",
        "policy",
        "type",
        "createTime",
        "updateTime"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> The membership identifier for the configured table association analysis rule.</p>"
        },
        "configuredTableAssociationId":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p> The unique identifier for the configured table association.</p>"
        },
        "configuredTableAssociationArn":{
          "shape":"ConfiguredTableAssociationArn",
          "documentation":"<p> The Amazon Resource Name (ARN) of the configured table association.</p>"
        },
        "policy":{
          "shape":"ConfiguredTableAssociationAnalysisRulePolicy",
          "documentation":"<p> The policy of the configured table association analysis rule.</p>"
        },
        "type":{
          "shape":"ConfiguredTableAssociationAnalysisRuleType",
          "documentation":"<p> The type of the configured table association analysis rule.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p> The creation time of the configured table association analysis rule.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p> The update time of the configured table association analysis rule.</p>"
        }
      },
      "documentation":"<p>An analysis rule for a configured table association. This analysis rule specifies how data from the table can be used within its associated collaboration. In the console, the <code>ConfiguredTableAssociationAnalysisRule</code> is referred to as the <i>collaboration analysis rule</i>.</p>"
    },
    "ConfiguredTableAssociationAnalysisRuleAggregation":{
      "type":"structure",
      "members":{
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The list of collaboration members who are allowed to receive results of queries run with this configured table.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.</p> <p>The <code>allowedAdditionalAnalyses</code> parameter is currently supported for the list analysis rule (<code>AnalysisRuleList</code>) and the custom analysis rule (<code>AnalysisRuleCustom</code>).</p>"
        }
      },
      "documentation":"<p> The configured table association analysis rule applied to a configured table with the aggregation analysis rule.</p>"
    },
    "ConfiguredTableAssociationAnalysisRuleCustom":{
      "type":"structure",
      "members":{
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The list of collaboration members who are allowed to receive results of queries run with this configured table.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.</p>"
        }
      },
      "documentation":"<p> The configured table association analysis rule applied to a configured table with the custom analysis rule.</p>"
    },
    "ConfiguredTableAssociationAnalysisRuleList":{
      "type":"structure",
      "members":{
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The list of collaboration members who are allowed to receive results of queries run with this configured table.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.</p>"
        }
      },
      "documentation":"<p> The configured table association analysis rule applied to a configured table with the list analysis rule.</p>"
    },
    "ConfiguredTableAssociationAnalysisRulePolicy":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"ConfiguredTableAssociationAnalysisRulePolicyV1",
          "documentation":"<p> The policy for the configured table association analysis rule.</p>"
        }
      },
      "documentation":"<p> Controls on the query specifications that can be run on an associated configured table.</p>",
      "union":true
    },
    "ConfiguredTableAssociationAnalysisRulePolicyV1":{
      "type":"structure",
      "members":{
        "list":{
          "shape":"ConfiguredTableAssociationAnalysisRuleList",
          "documentation":"<p> Analysis rule type that enables only list queries on a configured table.</p>"
        },
        "aggregation":{
          "shape":"ConfiguredTableAssociationAnalysisRuleAggregation",
          "documentation":"<p> Analysis rule type that enables only aggregation queries on a configured table.</p>"
        },
        "custom":{
          "shape":"ConfiguredTableAssociationAnalysisRuleCustom",
          "documentation":"<p> Analysis rule type that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy.</p>"
        }
      },
      "documentation":"<p> Controls on the query specifications that can be run on an associated configured table.</p>",
      "union":true
    },
    "ConfiguredTableAssociationAnalysisRuleType":{
      "type":"string",
      "enum":[
        "AGGREGATION",
        "LIST",
        "CUSTOM"
      ]
    },
    "ConfiguredTableAssociationAnalysisRuleTypeList":{
      "type":"list",
      "member":{"shape":"ConfiguredTableAssociationAnalysisRuleType"}
    },
    "ConfiguredTableAssociationArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:configuredtableassociation/[\\d\\w-]+/[\\d\\w-]+"
    },
    "ConfiguredTableAssociationIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ConfiguredTableAssociationSchemaTypeProperties":{
      "type":"structure",
      "required":["configuredTableAssociationId"],
      "members":{
        "configuredTableAssociationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the configured table association.</p>"
        }
      },
      "documentation":"<p>Contains the schema type properties for a configured table association.</p>"
    },
    "ConfiguredTableAssociationSummary":{
      "type":"structure",
      "required":[
        "configuredTableId",
        "membershipId",
        "membershipArn",
        "name",
        "createTime",
        "updateTime",
        "id",
        "arn"
      ],
      "members":{
        "configuredTableId":{
          "shape":"UUID",
          "documentation":"<p>The unique configured table ID that this configured table association refers to.</p>"
        },
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique ID for the membership that the configured table association belongs to.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership that the configured table association belongs to.</p>"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the configured table association. The table is identified by this name when running Protected Queries against the underlying data.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table association was last updated.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the configured table association.</p>"
        },
        "arn":{
          "shape":"ConfiguredTableAssociationArn",
          "documentation":"<p>The unique ARN for the configured table association.</p>"
        },
        "analysisRuleTypes":{
          "shape":"ConfiguredTableAssociationAnalysisRuleTypeList",
          "documentation":"<p>The analysis rule types that are associated with the configured table associations in this summary. </p>"
        }
      },
      "documentation":"<p>The configured table association summary for the objects listed by the request.</p>"
    },
    "ConfiguredTableAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"ConfiguredTableAssociationSummary"}
    },
    "ConfiguredTableIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ConfiguredTableSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "createTime",
        "updateTime",
        "analysisRuleTypes",
        "analysisMethod"
      ],
      "members":{
        "id":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique ID of the configured table.</p>"
        },
        "arn":{
          "shape":"ConfiguredTableArn",
          "documentation":"<p>The unique ARN of the configured table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the configured table.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the configured table was last updated.</p>"
        },
        "analysisRuleTypes":{
          "shape":"ConfiguredTableAnalysisRuleTypeList",
          "documentation":"<p>The types of analysis rules associated with this configured table.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p>The analysis method for the configured tables. </p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The selected analysis methods for the configured table summary.</p>"
        }
      },
      "documentation":"<p>The configured table summary for the objects listed by the request.</p>"
    },
    "ConfiguredTableSummaryList":{
      "type":"list",
      "member":{
        "shape":"ConfiguredTableSummary",
        "documentation":"<p>The member of the configured table summary list.</p>"
      }
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The ID of the conflicting resource.</p>"
        },
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The type of the conflicting resource.</p>"
        },
        "reason":{
          "shape":"ConflictExceptionReason",
          "documentation":"<p>A reason code for the exception.</p>"
        }
      },
      "documentation":"<p>Updating or deleting a resource can cause an inconsistent state.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ConflictExceptionReason":{
      "type":"string",
      "enum":[
        "ALREADY_EXISTS",
        "SUBRESOURCES_EXIST",
        "INVALID_STATE"
      ]
    },
    "ConsolidatedPolicy":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"ConsolidatedPolicyV1",
          "documentation":"<p> The consolidated policy version 1.</p>"
        }
      },
      "documentation":"<p>Controls on the analysis specifications that can be run on a configured table.</p>",
      "union":true
    },
    "ConsolidatedPolicyAggregation":{
      "type":"structure",
      "required":[
        "aggregateColumns",
        "joinColumns",
        "dimensionColumns",
        "scalarFunctions",
        "outputConstraints"
      ],
      "members":{
        "aggregateColumns":{
          "shape":"ConsolidatedPolicyAggregationAggregateColumnsList",
          "documentation":"<p> Aggregate columns in consolidated policy aggregation.</p>"
        },
        "joinColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p> The columns to join on.</p>"
        },
        "joinRequired":{
          "shape":"JoinRequiredOption",
          "documentation":"<p> Join required</p>"
        },
        "allowedJoinOperators":{
          "shape":"JoinOperatorsList",
          "documentation":"<p> The allowed join operators.</p>"
        },
        "dimensionColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p> The dimension columns of the consolidated policy aggregation.</p>"
        },
        "scalarFunctions":{
          "shape":"ScalarFunctionsList",
          "documentation":"<p> The scalar functions.</p>"
        },
        "outputConstraints":{
          "shape":"AggregationConstraints",
          "documentation":"<p> The output constraints of the consolidated policy aggregation.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> Additional analyses for the consolidated policy aggregation.</p>"
        },
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The allowed result receivers.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The additional analyses allowed by the consolidated policy aggregation.</p>"
        }
      },
      "documentation":"<p> Controls on the analysis specifications that can be run on a configured table.</p>"
    },
    "ConsolidatedPolicyAggregationAggregateColumnsList":{
      "type":"list",
      "member":{"shape":"AggregateColumn"},
      "min":1
    },
    "ConsolidatedPolicyCustom":{
      "type":"structure",
      "required":["allowedAnalyses"],
      "members":{
        "allowedAnalyses":{
          "shape":"ConsolidatedPolicyCustomAllowedAnalysesList",
          "documentation":"<p> The allowed analyses.</p>"
        },
        "allowedAnalysisProviders":{
          "shape":"ConsolidatedPolicyCustomAllowedAnalysisProvidersList",
          "documentation":"<p> The allowed analysis providers.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> Additional analyses for the consolidated policy.</p>"
        },
        "disallowedOutputColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p> Disallowed output columns</p>"
        },
        "differentialPrivacy":{"shape":"DifferentialPrivacyConfiguration"},
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The allowed result receivers.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The additional analyses allowed by the consolidated policy.</p>"
        }
      },
      "documentation":"<p>Controls on the analysis specifications that can be run on a configured table.</p>"
    },
    "ConsolidatedPolicyCustomAllowedAnalysesList":{
      "type":"list",
      "member":{"shape":"AnalysisTemplateArnOrQueryWildcard"},
      "min":0
    },
    "ConsolidatedPolicyCustomAllowedAnalysisProvidersList":{
      "type":"list",
      "member":{"shape":"AccountId"},
      "min":0
    },
    "ConsolidatedPolicyList":{
      "type":"structure",
      "required":[
        "joinColumns",
        "listColumns"
      ],
      "members":{
        "joinColumns":{
          "shape":"ConsolidatedPolicyListJoinColumnsList",
          "documentation":"<p> The columns to join on.</p>"
        },
        "allowedJoinOperators":{
          "shape":"JoinOperatorsList",
          "documentation":"<p> The allowed join operators in the consolidated policy list.</p>"
        },
        "listColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p> The columns in the consolidated policy list.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p> Additional analyses for the consolidated policy list.</p>"
        },
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p> The allowed result receivers.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p> The additional analyses allowed by the consolidated policy list.</p>"
        }
      },
      "documentation":"<p>Controls on the analysis specifications that can be run on a configured table.</p>"
    },
    "ConsolidatedPolicyListJoinColumnsList":{
      "type":"list",
      "member":{"shape":"AnalysisRuleColumnName"},
      "min":1
    },
    "ConsolidatedPolicyV1":{
      "type":"structure",
      "members":{
        "list":{
          "shape":"ConsolidatedPolicyList",
          "documentation":"<p> The list of consolidated policies.</p>"
        },
        "aggregation":{
          "shape":"ConsolidatedPolicyAggregation",
          "documentation":"<p> The aggregation setting for the consolidated policy.</p>"
        },
        "custom":{
          "shape":"ConsolidatedPolicyCustom",
          "documentation":"<p> Custom policy</p>"
        }
      },
      "documentation":"<p>Controls on the analysis specifications that can be run on a configured table.</p>",
      "union":true
    },
    "CreateAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "name",
        "format",
        "source"
      ],
      "members":{
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the analysis template.</p>"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the analysis template.</p>"
        },
        "format":{
          "shape":"AnalysisFormat",
          "documentation":"<p>The format of the analysis template.</p>"
        },
        "source":{
          "shape":"AnalysisSource",
          "documentation":"<p>The information in the analysis template.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "analysisParameters":{
          "shape":"AnalysisParameterList",
          "documentation":"<p>The parameters of the analysis template.</p>"
        },
        "schema":{"shape":"AnalysisSchema"},
        "errorMessageConfiguration":{
          "shape":"ErrorMessageConfiguration",
          "documentation":"<p>The configuration that specifies the level of detail in error messages returned by analyses using this template. When set to <code>DETAILED</code>, error messages include more information to help troubleshoot issues with PySpark jobs. Detailed error messages may expose underlying data, including sensitive information. Recommended for faster troubleshooting in development and testing environments.</p>"
        },
        "syntheticDataParameters":{
          "shape":"SyntheticDataParameters",
          "documentation":"<p>The parameters for generating synthetic data when running the analysis template.</p>"
        }
      }
    },
    "CreateAnalysisTemplateOutput":{
      "type":"structure",
      "required":["analysisTemplate"],
      "members":{
        "analysisTemplate":{
          "shape":"AnalysisTemplate",
          "documentation":"<p>The analysis template.</p>"
        }
      }
    },
    "CreateCollaborationChangeRequestInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "changes"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier of the collaboration that the change request is made against.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "changes":{
          "shape":"ChangeInputList",
          "documentation":"<p>The list of changes to apply to the collaboration. Each change specifies the type of modification and the details of what should be changed.</p>"
        }
      }
    },
    "CreateCollaborationChangeRequestOutput":{
      "type":"structure",
      "required":["collaborationChangeRequest"],
      "members":{
        "collaborationChangeRequest":{"shape":"CollaborationChangeRequest"}
      }
    },
    "CreateCollaborationInput":{
      "type":"structure",
      "required":[
        "members",
        "name",
        "creatorMemberAbilities",
        "creatorDisplayName",
        "queryLogStatus"
      ],
      "members":{
        "members":{
          "shape":"MemberList",
          "documentation":"<p>A list of initial members, not including the creator. This list is immutable.</p>"
        },
        "name":{
          "shape":"CollaborationName",
          "documentation":"<p>The display name for a collaboration.</p>"
        },
        "description":{
          "shape":"CollaborationDescription",
          "documentation":"<p>A description of the collaboration provided by the collaboration owner.</p>"
        },
        "creatorMemberAbilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration creator.</p>"
        },
        "creatorMLMemberAbilities":{
          "shape":"MLMemberAbilities",
          "documentation":"<p>The ML abilities granted to the collaboration creator.</p>"
        },
        "creatorDisplayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the collaboration creator.</p>"
        },
        "dataEncryptionMetadata":{
          "shape":"DataEncryptionMetadata",
          "documentation":"<p>The settings for client-side encryption with Cryptographic Computing for Clean Rooms.</p>"
        },
        "queryLogStatus":{
          "shape":"CollaborationQueryLogStatus",
          "documentation":"<p>An indicator as to whether query logging has been enabled or disabled for the collaboration.</p> <p>When <code>ENABLED</code>, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "jobLogStatus":{
          "shape":"CollaborationJobLogStatus",
          "documentation":"<p>Specifies whether job logs are enabled for this collaboration. </p> <p>When <code>ENABLED</code>, Clean Rooms logs details about jobs run within this collaboration; those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "creatorPaymentConfiguration":{
          "shape":"PaymentConfiguration",
          "documentation":"<p>The collaboration creator's payment responsibilities set by the collaboration creator. </p> <p>If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.</p>"
        },
        "analyticsEngine":{
          "shape":"AnalyticsEngine",
          "documentation":"<p> The analytics engine.</p> <note> <p>After July 16, 2025, the <code>CLEAN_ROOMS_SQL</code> parameter will no longer be available. </p> </note>"
        },
        "autoApprovedChangeRequestTypes":{
          "shape":"AutoApprovedChangeTypeList",
          "documentation":"<p>The types of change requests that are automatically approved for this collaboration.</p>"
        },
        "allowedResultRegions":{
          "shape":"AllowedResultRegions",
          "documentation":"<p>The Amazon Web Services Regions where collaboration query results can be stored. When specified, results can only be written to these Regions. This parameter enables you to meet your compliance and data governance requirements, and implement regional data governance policies.</p>"
        },
        "isMetricsEnabled":{
          "shape":"Boolean",
          "documentation":"<p>An indicator as to whether metrics have been enabled or disabled for the collaboration.</p> <p>When <code>true</code>, collaboration members can opt in to Amazon CloudWatch metrics for their membership queries. The default value is <code>false</code>.</p>"
        }
      }
    },
    "CreateCollaborationOutput":{
      "type":"structure",
      "required":["collaboration"],
      "members":{
        "collaboration":{
          "shape":"Collaboration",
          "documentation":"<p>The collaboration.</p>"
        }
      }
    },
    "CreateConfiguredAudienceModelAssociationInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredAudienceModelArn",
        "configuredAudienceModelAssociationName",
        "manageResourcePolicies"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The configured audience model is associated to the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredAudienceModelArn":{
          "shape":"ConfiguredAudienceModelArn",
          "documentation":"<p>A unique identifier for the configured audience model that you want to associate.</p>"
        },
        "configuredAudienceModelAssociationName":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>The name of the configured audience model association.</p>"
        },
        "manageResourcePolicies":{
          "shape":"Boolean",
          "documentation":"<p>When <code>TRUE</code>, indicates that the resource policy for the configured audience model resource being associated is configured for Clean Rooms to manage permissions related to the given collaboration. When <code>FALSE</code>, indicates that the configured audience model resource owner will manage permissions related to the given collaboration.</p> <p>Setting this to <code>TRUE</code> requires you to have permissions to create, update, and delete the resource policy for the <code>cleanrooms-ml</code> resource when you call the <a>DeleteConfiguredAudienceModelAssociation</a> resource. In addition, if you are the collaboration creator and specify <code>TRUE</code>, you must have the same permissions when you call the <a>DeleteMember</a> and <a>DeleteCollaboration</a> APIs.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A description of the configured audience model association.</p>"
        }
      }
    },
    "CreateConfiguredAudienceModelAssociationOutput":{
      "type":"structure",
      "required":["configuredAudienceModelAssociation"],
      "members":{
        "configuredAudienceModelAssociation":{
          "shape":"ConfiguredAudienceModelAssociation",
          "documentation":"<p>Information about the configured audience model association.</p>"
        }
      }
    },
    "CreateConfiguredTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "configuredTableIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The identifier for the configured table to create the analysis rule for. Currently accepts the configured table ID. </p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAnalysisRuleType",
          "documentation":"<p>The type of analysis rule.</p>"
        },
        "analysisRulePolicy":{
          "shape":"ConfiguredTableAnalysisRulePolicy",
          "documentation":"<p>The analysis rule policy that was created for the configured table.</p>"
        }
      }
    },
    "CreateConfiguredTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAnalysisRule",
          "documentation":"<p>The analysis rule that was created for the configured table.</p>"
        }
      }
    },
    "CreateConfiguredTableAssociationAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredTableAssociationIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p> The unique ID for the configured table association. Currently accepts the configured table association ID.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAssociationAnalysisRuleType",
          "documentation":"<p> The type of analysis rule.</p>"
        },
        "analysisRulePolicy":{
          "shape":"ConfiguredTableAssociationAnalysisRulePolicy",
          "documentation":"<p>The analysis rule policy that was created for the configured table association.</p>"
        }
      }
    },
    "CreateConfiguredTableAssociationAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAssociationAnalysisRule",
          "documentation":"<p>The analysis rule for the conﬁgured table association. In the console, the <code>ConfiguredTableAssociationAnalysisRule</code> is referred to as the <i>collaboration analysis rule</i>.</p>"
        }
      }
    },
    "CreateConfiguredTableAssociationInput":{
      "type":"structure",
      "required":[
        "name",
        "membershipIdentifier",
        "configuredTableIdentifier",
        "roleArn"
      ],
      "members":{
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the configured table association. This name is used to query the underlying configured table.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A description for the configured table association.</p>"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The configured table is associated to the collaboration that this membership belongs to. Currently accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>A unique identifier for the configured table to be associated to. Currently accepts a configured table ID.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The service will assume this role to access catalog metadata and query the table.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        }
      }
    },
    "CreateConfiguredTableAssociationOutput":{
      "type":"structure",
      "required":["configuredTableAssociation"],
      "members":{
        "configuredTableAssociation":{
          "shape":"ConfiguredTableAssociation",
          "documentation":"<p>The configured table association.</p>"
        }
      }
    },
    "CreateConfiguredTableInput":{
      "type":"structure",
      "required":[
        "name",
        "tableReference",
        "allowedColumns",
        "analysisMethod"
      ],
      "members":{
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the configured table.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A description for the configured table.</p>"
        },
        "tableReference":{
          "shape":"TableReference",
          "documentation":"<p>A reference to the table being configured.</p>"
        },
        "allowedColumns":{
          "shape":"AllowedColumnList",
          "documentation":"<p>The columns of the underlying table that can be used by collaborations or analysis rules.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p>The analysis method allowed for the configured tables.</p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The analysis methods to enable for the configured table. When configured, you must specify at least two analysis methods.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        }
      }
    },
    "CreateConfiguredTableOutput":{
      "type":"structure",
      "required":["configuredTable"],
      "members":{
        "configuredTable":{
          "shape":"ConfiguredTable",
          "documentation":"<p>The created configured table.</p>"
        }
      }
    },
    "CreateIdMappingTableInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "name",
        "inputReferenceConfig"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>A name for the ID mapping table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A description of the ID mapping table.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdMappingTableInputReferenceConfig",
          "documentation":"<p>The input reference configuration needed to create the ID mapping table.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Web Services KMS key. This value is used to encrypt the mapping table data that is stored by Clean Rooms.</p>"
        }
      }
    },
    "CreateIdMappingTableOutput":{
      "type":"structure",
      "required":["idMappingTable"],
      "members":{
        "idMappingTable":{
          "shape":"IdMappingTable",
          "documentation":"<p>The ID mapping table that was created.</p>"
        }
      }
    },
    "CreateIdNamespaceAssociationInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "inputReferenceConfig",
        "name"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID namespace association.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "inputReferenceConfig":{
          "shape":"IdNamespaceAssociationInputReferenceConfig",
          "documentation":"<p>The input reference configuration needed to create the ID namespace association.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>The name for the ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the ID namespace association.</p>"
        },
        "idMappingConfig":{
          "shape":"IdMappingConfig",
          "documentation":"<p>The configuration settings for the ID mapping table.</p>"
        }
      }
    },
    "CreateIdNamespaceAssociationOutput":{
      "type":"structure",
      "required":["idNamespaceAssociation"],
      "members":{
        "idNamespaceAssociation":{
          "shape":"IdNamespaceAssociation",
          "documentation":"<p>The ID namespace association that was created.</p>"
        }
      }
    },
    "CreateIntermediateTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table for which to create the analysis rule.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"IntermediateTableAnalysisRuleType",
          "documentation":"<p>The type of analysis rule to create. Currently, only <code>CUSTOM</code> is supported.</p>"
        },
        "analysisRulePolicy":{
          "shape":"IntermediateTableAnalysisRulePolicy",
          "documentation":"<p>The analysis rule policy to apply to the intermediate table.</p>"
        }
      }
    },
    "CreateIntermediateTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"IntermediateTableAnalysisRule",
          "documentation":"<p>The analysis rule that was created for the intermediate table.</p>"
        }
      }
    },
    "CreateIntermediateTableInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "name",
        "populationAnalysisConfiguration"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership where the intermediate table is created.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The display name for the intermediate table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A description of the intermediate table.</p>"
        },
        "populationAnalysisConfiguration":{
          "shape":"PopulationAnalysisConfiguration",
          "documentation":"<p>The configuration that defines the analysis used to populate the intermediate table. This configuration contains the SQL query or analysis template reference.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed KMS key used to encrypt the intermediate table data.</p>"
        },
        "retentionInDays":{
          "shape":"CreateIntermediateTableInputRetentionInDaysInteger",
          "documentation":"<p>The number of days to retain populated data versions. Minimum value of 1, maximum value of 365.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        }
      }
    },
    "CreateIntermediateTableInputRetentionInDaysInteger":{
      "type":"integer",
      "box":true,
      "max":365,
      "min":1
    },
    "CreateIntermediateTableOutput":{
      "type":"structure",
      "required":["intermediateTable"],
      "members":{
        "intermediateTable":{
          "shape":"IntermediateTable",
          "documentation":"<p>The intermediate table that was created.</p>"
        }
      }
    },
    "CreateMembershipInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "queryLogStatus"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique ID for the associated collaboration.</p>"
        },
        "queryLogStatus":{
          "shape":"MembershipQueryLogStatus",
          "documentation":"<p>An indicator as to whether query logging has been enabled or disabled for the membership.</p> <p>When <code>ENABLED</code>, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "jobLogStatus":{
          "shape":"MembershipJobLogStatus",
          "documentation":"<p>An indicator as to whether job logging has been enabled or disabled for the collaboration. </p> <p>When <code>ENABLED</code>, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        },
        "defaultResultConfiguration":{
          "shape":"MembershipProtectedQueryResultConfiguration",
          "documentation":"<p>The default protected query result configuration as specified by the member who can receive results.</p>"
        },
        "defaultJobResultConfiguration":{
          "shape":"MembershipProtectedJobResultConfiguration",
          "documentation":"<p>The default job result configuration that determines how job results are protected and managed within this membership. This configuration applies to all jobs.</p>"
        },
        "paymentConfiguration":{
          "shape":"MembershipPaymentConfiguration",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member.</p> <p>Not required if the collaboration member has the member ability to run queries. </p> <p>Required if the collaboration member doesn't have the member ability to run queries but is configured as a payer by the collaboration creator. </p>"
        },
        "isMetricsEnabled":{
          "shape":"Boolean",
          "documentation":"<p>An indicator as to whether Amazon CloudWatch metrics have been enabled or disabled for the membership.</p> <p>Amazon CloudWatch metrics are only available when the collaboration has metrics enabled. This option can be set by collaboration members who have the ability to run queries (analysis runners) or by members who are configured as payers.</p> <p>When <code>true</code>, metrics about query execution are collected in Amazon CloudWatch. The default value is <code>false</code>.</p>"
        }
      }
    },
    "CreateMembershipOutput":{
      "type":"structure",
      "required":["membership"],
      "members":{
        "membership":{
          "shape":"Membership",
          "documentation":"<p>The membership that was created.</p>"
        }
      }
    },
    "CreatePrivacyBudgetTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "privacyBudgetType",
        "parameters"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget template is created in the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "autoRefresh":{
          "shape":"PrivacyBudgetTemplateAutoRefresh",
          "documentation":"<p>How often the privacy budget refreshes.</p> <important> <p>If you plan to regularly bring new data into the collaboration, you can use <code>CALENDAR_MONTH</code> to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queries across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.</p> </important>"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>Specifies the type of the privacy budget template.</p>"
        },
        "parameters":{
          "shape":"PrivacyBudgetTemplateParametersInput",
          "documentation":"<p>Specifies your parameters for the privacy budget template.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.</p>"
        }
      }
    },
    "CreatePrivacyBudgetTemplateOutput":{
      "type":"structure",
      "required":["privacyBudgetTemplate"],
      "members":{
        "privacyBudgetTemplate":{
          "shape":"PrivacyBudgetTemplate",
          "documentation":"<p>A summary of the elements in the privacy budget template.</p>"
        }
      }
    },
    "CustomMLMemberAbilities":{
      "type":"list",
      "member":{"shape":"CustomMLMemberAbility"}
    },
    "CustomMLMemberAbility":{
      "type":"string",
      "enum":[
        "CAN_RECEIVE_MODEL_OUTPUT",
        "CAN_RECEIVE_INFERENCE_OUTPUT"
      ]
    },
    "DataEncryptionMetadata":{
      "type":"structure",
      "required":[
        "allowCleartext",
        "allowDuplicates",
        "allowJoinsOnColumnsWithDifferentNames",
        "preserveNulls"
      ],
      "members":{
        "allowCleartext":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether encrypted tables can contain cleartext data (<code>TRUE</code>) or are to cryptographically process every column (<code>FALSE</code>).</p>"
        },
        "allowDuplicates":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether Fingerprint columns can contain duplicate entries (<code>TRUE</code>) or are to contain only non-repeated values (<code>FALSE</code>).</p>"
        },
        "allowJoinsOnColumnsWithDifferentNames":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether Fingerprint columns can be joined on any other Fingerprint column with a different name (<code>TRUE</code>) or can only be joined on Fingerprint columns of the same name (<code>FALSE</code>).</p>"
        },
        "preserveNulls":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether NULL values are to be copied as NULL to encrypted tables (<code>TRUE</code>) or cryptographically processed (<code>FALSE</code>).</p>"
        }
      },
      "documentation":"<p>The settings for client-side encryption for cryptographic computing.</p>"
    },
    "DeleteAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "analysisTemplateIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "analysisTemplateIdentifier":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier for the analysis template resource.</p>",
          "location":"uri",
          "locationName":"analysisTemplateIdentifier"
        }
      }
    },
    "DeleteAnalysisTemplateOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteCollaborationInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier for the collaboration.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        }
      }
    },
    "DeleteCollaborationOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteConfiguredAudienceModelAssociationInput":{
      "type":"structure",
      "required":[
        "configuredAudienceModelAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredAudienceModelAssociationIdentifier":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>A unique identifier of the configured audience model association that you want to delete.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier of the membership that contains the audience model association that you want to delete.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "DeleteConfiguredAudienceModelAssociationOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteConfiguredTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "configuredTableIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAnalysisRuleType",
          "documentation":"<p>The analysis rule type to be deleted. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "DeleteConfiguredTableAnalysisRuleOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>An empty response that indicates a successful delete.</p>"
    },
    "DeleteConfiguredTableAssociationAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredTableAssociationIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p>The identiﬁer for the conﬁgured table association that's related to the analysis rule that you want to delete.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAssociationAnalysisRuleType",
          "documentation":"<p>The type of the analysis rule that you want to delete.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "DeleteConfiguredTableAssociationAnalysisRuleOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteConfiguredTableAssociationInput":{
      "type":"structure",
      "required":[
        "configuredTableAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p>The unique ID for the configured table association to be deleted. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "DeleteConfiguredTableAssociationOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteConfiguredTableInput":{
      "type":"structure",
      "required":["configuredTableIdentifier"],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique ID for the configured table to delete.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        }
      }
    },
    "DeleteConfiguredTableOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>The empty output for a successful deletion.</p>"
    },
    "DeleteIdMappingTableInput":{
      "type":"structure",
      "required":[
        "idMappingTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idMappingTableIdentifier":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table that you want to delete.</p>",
          "location":"uri",
          "locationName":"idMappingTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping table that you want to delete.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "DeleteIdMappingTableOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteIdNamespaceAssociationInput":{
      "type":"structure",
      "required":[
        "idNamespaceAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idNamespaceAssociationIdentifier":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the ID namespace association that you want to delete.</p>",
          "location":"uri",
          "locationName":"idNamespaceAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID namespace association that you want to delete.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "DeleteIdNamespaceAssociationOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteIntermediateTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table from which to delete the analysis rule.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"IntermediateTableAnalysisRuleType",
          "documentation":"<p>The type of analysis rule to delete. Currently, only <code>CUSTOM</code> is supported.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "DeleteIntermediateTableAnalysisRuleOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteIntermediateTableInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table to delete.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        }
      }
    },
    "DeleteIntermediateTableOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteMemberInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "accountId"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique identifier for the associated collaboration.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member to remove.</p>",
          "location":"uri",
          "locationName":"accountId"
        }
      }
    },
    "DeleteMemberOutput":{
      "type":"structure",
      "members":{}
    },
    "DeleteMembershipInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "DeleteMembershipOutput":{
      "type":"structure",
      "members":{}
    },
    "DeletePrivacyBudgetTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "privacyBudgetTemplateIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget template is deleted from the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "privacyBudgetTemplateIdentifier":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>A unique identifier for your privacy budget template. </p>",
          "location":"uri",
          "locationName":"privacyBudgetTemplateIdentifier"
        }
      }
    },
    "DeletePrivacyBudgetTemplateOutput":{
      "type":"structure",
      "members":{}
    },
    "DependencyList":{
      "type":"list",
      "member":{"shape":"IntermediateTableDependency"}
    },
    "DifferentialPrivacyAggregationExpression":{
      "type":"string",
      "min":1
    },
    "DifferentialPrivacyAggregationType":{
      "type":"string",
      "enum":[
        "AVG",
        "COUNT",
        "COUNT_DISTINCT",
        "SUM",
        "STDDEV"
      ]
    },
    "DifferentialPrivacyColumn":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"ColumnName",
          "documentation":"<p>The name of the column, such as user_id, that contains the unique identifier of your users, whose privacy you want to protect. If you want to turn on differential privacy for two or more tables in a collaboration, you must configure the same column as the user identifier column in both analysis rules.</p>"
        }
      },
      "documentation":"<p>Specifies the name of the column that contains the unique identifier of your users, whose privacy you want to protect.</p>"
    },
    "DifferentialPrivacyColumnList":{
      "type":"list",
      "member":{"shape":"DifferentialPrivacyColumn"},
      "max":1,
      "min":1
    },
    "DifferentialPrivacyConfiguration":{
      "type":"structure",
      "required":["columns"],
      "members":{
        "columns":{
          "shape":"DifferentialPrivacyColumnList",
          "documentation":"<p>The name of the column (such as user_id) that contains the unique identifier of your users whose privacy you want to protect. If you want to turn on diﬀerential privacy for two or more tables in a collaboration, you must conﬁgure the same column as the user identiﬁer column in both analysis rules.</p>"
        }
      },
      "documentation":"<p>Specifies the unique identifier for your users.</p>"
    },
    "DifferentialPrivacyParameters":{
      "type":"structure",
      "required":["sensitivityParameters"],
      "members":{
        "sensitivityParameters":{
          "shape":"DifferentialPrivacySensitivityParametersList",
          "documentation":"<p>Provides the sensitivity parameters that you can use to better understand the total amount of noise in query results.</p>"
        }
      },
      "documentation":"<p>An array that contains the sensitivity parameters.</p>"
    },
    "DifferentialPrivacyPreviewAggregation":{
      "type":"structure",
      "required":[
        "type",
        "maxCount"
      ],
      "members":{
        "type":{
          "shape":"DifferentialPrivacyAggregationType",
          "documentation":"<p>The type of aggregation function.</p>"
        },
        "maxCount":{
          "shape":"DifferentialPrivacyPreviewAggregationMaxCountInteger",
          "documentation":"<p>The maximum number of aggregations that the member who can query can run given the epsilon and noise parameters.</p>"
        }
      },
      "documentation":"<p>Provides an estimate of the number of aggregation functions that the member who can query can run given the epsilon and noise parameters.</p>"
    },
    "DifferentialPrivacyPreviewAggregationList":{
      "type":"list",
      "member":{"shape":"DifferentialPrivacyPreviewAggregation"}
    },
    "DifferentialPrivacyPreviewAggregationMaxCountInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DifferentialPrivacyPreviewParametersInput":{
      "type":"structure",
      "required":[
        "epsilon",
        "usersNoisePerQuery"
      ],
      "members":{
        "epsilon":{
          "shape":"Epsilon",
          "documentation":"<p>The epsilon value that you want to preview.</p>"
        },
        "usersNoisePerQuery":{
          "shape":"UsersNoisePerQuery",
          "documentation":"<p>Noise added per query is measured in terms of the number of users whose contributions you want to obscure. This value governs the rate at which the privacy budget is depleted.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameters that you want to preview.</p>"
    },
    "DifferentialPrivacyPrivacyBudget":{
      "type":"structure",
      "required":[
        "aggregations",
        "epsilon"
      ],
      "members":{
        "aggregations":{
          "shape":"DifferentialPrivacyPrivacyBudgetAggregationList",
          "documentation":"<p>This information includes the configured epsilon value and the utility in terms of total aggregations, as well as the remaining aggregations.</p>"
        },
        "epsilon":{
          "shape":"Epsilon",
          "documentation":"<p>The epsilon value that you configured.</p>"
        }
      },
      "documentation":"<p>Specifies the configured epsilon value and the utility in terms of total aggregations, as well as the remaining aggregations available.</p>"
    },
    "DifferentialPrivacyPrivacyBudgetAggregation":{
      "type":"structure",
      "required":[
        "type",
        "maxCount",
        "remainingCount"
      ],
      "members":{
        "type":{
          "shape":"DifferentialPrivacyAggregationType",
          "documentation":"<p>The different types of aggregation functions that you can perform.</p>"
        },
        "maxCount":{
          "shape":"DifferentialPrivacyPrivacyBudgetAggregationMaxCountInteger",
          "documentation":"<p>The maximum number of aggregation functions that you can perform with the given privacy budget.</p>"
        },
        "remainingCount":{
          "shape":"DifferentialPrivacyPrivacyBudgetAggregationRemainingCountInteger",
          "documentation":"<p>The remaining number of aggregation functions that can be run with the available privacy budget.</p>"
        }
      },
      "documentation":"<p>Information about the total number of aggregations, as well as the remaining aggregations.</p>"
    },
    "DifferentialPrivacyPrivacyBudgetAggregationList":{
      "type":"list",
      "member":{"shape":"DifferentialPrivacyPrivacyBudgetAggregation"}
    },
    "DifferentialPrivacyPrivacyBudgetAggregationMaxCountInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DifferentialPrivacyPrivacyBudgetAggregationRemainingCountInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DifferentialPrivacyPrivacyImpact":{
      "type":"structure",
      "required":["aggregations"],
      "members":{
        "aggregations":{
          "shape":"DifferentialPrivacyPreviewAggregationList",
          "documentation":"<p>The number of aggregation functions that you can perform.</p>"
        }
      },
      "documentation":"<p>Information about the number of aggregation functions that the member who can query can run given the epsilon and noise parameters.</p>"
    },
    "DifferentialPrivacySensitivityParameters":{
      "type":"structure",
      "required":[
        "aggregationType",
        "aggregationExpression",
        "userContributionLimit"
      ],
      "members":{
        "aggregationType":{
          "shape":"DifferentialPrivacyAggregationType",
          "documentation":"<p>The type of aggregation function that was run.</p>"
        },
        "aggregationExpression":{
          "shape":"DifferentialPrivacyAggregationExpression",
          "documentation":"<p>The aggregation expression that was run.</p>"
        },
        "userContributionLimit":{
          "shape":"DifferentialPrivacySensitivityParametersUserContributionLimitInteger",
          "documentation":"<p>The maximum number of rows contributed by a user in a SQL query.</p>"
        },
        "minColumnValue":{
          "shape":"Float",
          "documentation":"<p>The lower bound of the aggregation expression.</p>"
        },
        "maxColumnValue":{
          "shape":"Float",
          "documentation":"<p>The upper bound of the aggregation expression.</p>"
        }
      },
      "documentation":"<p>Provides the sensitivity parameters.</p>"
    },
    "DifferentialPrivacySensitivityParametersList":{
      "type":"list",
      "member":{"shape":"DifferentialPrivacySensitivityParameters"}
    },
    "DifferentialPrivacySensitivityParametersUserContributionLimitInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DifferentialPrivacyTemplateParametersInput":{
      "type":"structure",
      "required":[
        "epsilon",
        "usersNoisePerQuery"
      ],
      "members":{
        "epsilon":{
          "shape":"Epsilon",
          "documentation":"<p>The epsilon value that you want to use.</p>"
        },
        "usersNoisePerQuery":{
          "shape":"UsersNoisePerQuery",
          "documentation":"<p>Noise added per query is measured in terms of the number of users whose contributions you want to obscure. This value governs the rate at which the privacy budget is depleted.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameter values that you want to use for the differential privacy template.</p>"
    },
    "DifferentialPrivacyTemplateParametersOutput":{
      "type":"structure",
      "required":[
        "epsilon",
        "usersNoisePerQuery"
      ],
      "members":{
        "epsilon":{
          "shape":"Epsilon",
          "documentation":"<p>The epsilon value that you specified.</p>"
        },
        "usersNoisePerQuery":{
          "shape":"UsersNoisePerQuery",
          "documentation":"<p>Noise added per query is measured in terms of the number of users whose contributions you want to obscure. This value governs the rate at which the privacy budget is depleted.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameter values that were used for the differential privacy template.</p>"
    },
    "DifferentialPrivacyTemplateUpdateParameters":{
      "type":"structure",
      "members":{
        "epsilon":{
          "shape":"Epsilon",
          "documentation":"<p>The updated epsilon value that you want to use.</p>"
        },
        "usersNoisePerQuery":{
          "shape":"UsersNoisePerQuery",
          "documentation":"<p>The updated value of noise added per query. It is measured in terms of the number of users whose contributions you want to obscure. This value governs the rate at which the privacy budget is depleted.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameter values that you want to update in the differential privacy template.</p>"
    },
    "DirectAnalysisConfigurationDetails":{
      "type":"structure",
      "members":{
        "receiverAccountIds":{
          "shape":"ReceiverAccountIds",
          "documentation":"<p> The account IDs for the member who received the results of a protected query.</p>"
        }
      },
      "documentation":"<p> The direct analysis configuration details.</p>"
    },
    "DisallowIntermediateTableInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableName"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table to disallow.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the intermediate table to disallow.</p>"
        },
        "includeDescendants":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to cascade the disallow action to descendant intermediate tables. Default is <code>true</code>.</p>"
        }
      }
    },
    "DisallowIntermediateTableOutput":{
      "type":"structure",
      "members":{}
    },
    "DisplayName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "Document":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "Epsilon":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":1
    },
    "ErrorMessageConfiguration":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"ErrorMessageType",
          "documentation":"<p>The level of detail for error messages returned by the PySpark job. When set to DETAILED, error messages include more information to help troubleshoot issues with your PySpark job.</p> <p>Because this setting may expose sensitive data, it is recommended for development and testing environments.</p>"
        }
      },
      "documentation":"<p>A structure that defines the level of detail included in error messages returned by PySpark jobs. This configuration allows you to control the verbosity of error messages to help with troubleshooting PySpark jobs while maintaining appropriate security controls.</p>"
    },
    "ErrorMessageType":{
      "type":"string",
      "enum":["DETAILED"]
    },
    "FilterableMemberStatus":{
      "type":"string",
      "enum":[
        "INVITED",
        "ACTIVE"
      ]
    },
    "Float":{
      "type":"float",
      "box":true
    },
    "GenericResourceName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "GetAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "analysisTemplateIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "analysisTemplateIdentifier":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier for the analysis template resource.</p>",
          "location":"uri",
          "locationName":"analysisTemplateIdentifier"
        }
      }
    },
    "GetAnalysisTemplateOutput":{
      "type":"structure",
      "required":["analysisTemplate"],
      "members":{
        "analysisTemplate":{
          "shape":"AnalysisTemplate",
          "documentation":"<p>The analysis template.</p>"
        }
      }
    },
    "GetCollaborationAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "analysisTemplateArn"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "analysisTemplateArn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the analysis template within a collaboration.</p>",
          "location":"uri",
          "locationName":"analysisTemplateArn"
        }
      }
    },
    "GetCollaborationAnalysisTemplateOutput":{
      "type":"structure",
      "required":["collaborationAnalysisTemplate"],
      "members":{
        "collaborationAnalysisTemplate":{
          "shape":"CollaborationAnalysisTemplate",
          "documentation":"<p>The analysis template within a collaboration.</p>"
        }
      }
    },
    "GetCollaborationChangeRequestInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "changeRequestIdentifier"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier of the collaboration that the change request is made against.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "changeRequestIdentifier":{
          "shape":"CollaborationChangeRequestIdentifier",
          "documentation":"<p>A unique identifier for the change request to retrieve.</p>",
          "location":"uri",
          "locationName":"changeRequestIdentifier"
        }
      }
    },
    "GetCollaborationChangeRequestOutput":{
      "type":"structure",
      "required":["collaborationChangeRequest"],
      "members":{
        "collaborationChangeRequest":{
          "shape":"CollaborationChangeRequest",
          "documentation":"<p>The collaboration change request that was requested.</p>"
        }
      }
    },
    "GetCollaborationConfiguredAudienceModelAssociationInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "configuredAudienceModelAssociationIdentifier"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the configured audience model association belongs to. Accepts a collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "configuredAudienceModelAssociationIdentifier":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>A unique identifier for the configured audience model association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelAssociationIdentifier"
        }
      }
    },
    "GetCollaborationConfiguredAudienceModelAssociationOutput":{
      "type":"structure",
      "required":["collaborationConfiguredAudienceModelAssociation"],
      "members":{
        "collaborationConfiguredAudienceModelAssociation":{
          "shape":"CollaborationConfiguredAudienceModelAssociation",
          "documentation":"<p>The metadata of the configured audience model association.</p>"
        }
      }
    },
    "GetCollaborationIdNamespaceAssociationInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "idNamespaceAssociationIdentifier"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration that contains the ID namespace association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "idNamespaceAssociationIdentifier":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the ID namespace association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"idNamespaceAssociationIdentifier"
        }
      }
    },
    "GetCollaborationIdNamespaceAssociationOutput":{
      "type":"structure",
      "required":["collaborationIdNamespaceAssociation"],
      "members":{
        "collaborationIdNamespaceAssociation":{
          "shape":"CollaborationIdNamespaceAssociation",
          "documentation":"<p>The ID namespace association that you requested.</p>"
        }
      }
    },
    "GetCollaborationInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier for the collaboration.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        }
      }
    },
    "GetCollaborationOutput":{
      "type":"structure",
      "required":["collaboration"],
      "members":{
        "collaboration":{
          "shape":"Collaboration",
          "documentation":"<p>The entire collaboration for this identifier.</p>"
        }
      }
    },
    "GetCollaborationPrivacyBudgetTemplateInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "privacyBudgetTemplateIdentifier"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for one of your collaborations.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "privacyBudgetTemplateIdentifier":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>A unique identifier for one of your privacy budget templates.</p>",
          "location":"uri",
          "locationName":"privacyBudgetTemplateIdentifier"
        }
      }
    },
    "GetCollaborationPrivacyBudgetTemplateOutput":{
      "type":"structure",
      "required":["collaborationPrivacyBudgetTemplate"],
      "members":{
        "collaborationPrivacyBudgetTemplate":{
          "shape":"CollaborationPrivacyBudgetTemplate",
          "documentation":"<p>Returns the details of the privacy budget template that you requested.</p>"
        }
      }
    },
    "GetConfiguredAudienceModelAssociationInput":{
      "type":"structure",
      "required":[
        "configuredAudienceModelAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredAudienceModelAssociationIdentifier":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>A unique identifier for the configured audience model association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership that contains the configured audience model association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetConfiguredAudienceModelAssociationOutput":{
      "type":"structure",
      "required":["configuredAudienceModelAssociation"],
      "members":{
        "configuredAudienceModelAssociation":{
          "shape":"ConfiguredAudienceModelAssociation",
          "documentation":"<p>Information about the configured audience model association that you requested.</p>"
        }
      }
    },
    "GetConfiguredTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "configuredTableIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique identifier for the configured table to retrieve. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAnalysisRuleType",
          "documentation":"<p>The analysis rule to be retrieved. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "GetConfiguredTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAnalysisRule",
          "documentation":"<p>The entire analysis rule output.</p>"
        }
      }
    },
    "GetConfiguredTableAssociationAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredTableAssociationIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p> The identiﬁer for the conﬁgured table association that's related to the analysis rule.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAssociationAnalysisRuleType",
          "documentation":"<p> The type of analysis rule that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "GetConfiguredTableAssociationAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAssociationAnalysisRule",
          "documentation":"<p>The analysis rule for the conﬁgured table association. In the console, the <code>ConfiguredTableAssociationAnalysisRule</code> is referred to as the <i>collaboration analysis rule</i>.</p>"
        }
      }
    },
    "GetConfiguredTableAssociationInput":{
      "type":"structure",
      "required":[
        "configuredTableAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p>The unique ID for the configured table association to retrieve. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetConfiguredTableAssociationOutput":{
      "type":"structure",
      "required":["configuredTableAssociation"],
      "members":{
        "configuredTableAssociation":{
          "shape":"ConfiguredTableAssociation",
          "documentation":"<p>The entire configured table association object.</p>"
        }
      }
    },
    "GetConfiguredTableInput":{
      "type":"structure",
      "required":["configuredTableIdentifier"],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique ID for the configured table to retrieve.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        }
      }
    },
    "GetConfiguredTableOutput":{
      "type":"structure",
      "required":["configuredTable"],
      "members":{
        "configuredTable":{
          "shape":"ConfiguredTable",
          "documentation":"<p>The retrieved configured table.</p>"
        }
      }
    },
    "GetIdMappingTableInput":{
      "type":"structure",
      "required":[
        "idMappingTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idMappingTableIdentifier":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table identifier that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"idMappingTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping table that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetIdMappingTableOutput":{
      "type":"structure",
      "required":["idMappingTable"],
      "members":{
        "idMappingTable":{
          "shape":"IdMappingTable",
          "documentation":"<p>The ID mapping table that you requested.</p>"
        }
      }
    },
    "GetIdNamespaceAssociationInput":{
      "type":"structure",
      "required":[
        "idNamespaceAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idNamespaceAssociationIdentifier":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the ID namespace association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"idNamespaceAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID namespace association that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetIdNamespaceAssociationOutput":{
      "type":"structure",
      "required":["idNamespaceAssociation"],
      "members":{
        "idNamespaceAssociation":{
          "shape":"IdNamespaceAssociation",
          "documentation":"<p>The ID namespace association that you requested.</p>"
        }
      }
    },
    "GetIntermediateTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier",
        "analysisRuleType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table for which to retrieve the analysis rule.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"IntermediateTableAnalysisRuleType",
          "documentation":"<p>The type of analysis rule to retrieve. Currently, only <code>CUSTOM</code> is supported.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        }
      }
    },
    "GetIntermediateTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"IntermediateTableAnalysisRule",
          "documentation":"<p>The analysis rule for the intermediate table.</p>"
        }
      }
    },
    "GetIntermediateTableInput":{
      "type":"structure",
      "required":[
        "intermediateTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table to retrieve.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetIntermediateTableOutput":{
      "type":"structure",
      "required":["intermediateTable"],
      "members":{
        "intermediateTable":{
          "shape":"IntermediateTable",
          "documentation":"<p>The intermediate table retrieved.</p>"
        }
      }
    },
    "GetMembershipInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        }
      }
    },
    "GetMembershipOutput":{
      "type":"structure",
      "required":["membership"],
      "members":{
        "membership":{
          "shape":"Membership",
          "documentation":"<p>The membership retrieved for the provided identifier.</p>"
        }
      }
    },
    "GetPrivacyBudgetTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "privacyBudgetTemplateIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget template is retrieved from the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "privacyBudgetTemplateIdentifier":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>A unique identifier for your privacy budget template.</p>",
          "location":"uri",
          "locationName":"privacyBudgetTemplateIdentifier"
        }
      }
    },
    "GetPrivacyBudgetTemplateOutput":{
      "type":"structure",
      "required":["privacyBudgetTemplate"],
      "members":{
        "privacyBudgetTemplate":{
          "shape":"PrivacyBudgetTemplate",
          "documentation":"<p>Returns the details of the privacy budget template that you requested.</p>"
        }
      }
    },
    "GetProtectedJobInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "protectedJobIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> The identifier for a membership in a protected job instance.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "protectedJobIdentifier":{
          "shape":"ProtectedJobIdentifier",
          "documentation":"<p> The identifier for the protected job instance.</p>",
          "location":"uri",
          "locationName":"protectedJobIdentifier"
        }
      }
    },
    "GetProtectedJobOutput":{
      "type":"structure",
      "required":["protectedJob"],
      "members":{
        "protectedJob":{
          "shape":"ProtectedJob",
          "documentation":"<p> The protected job metadata.</p>"
        }
      }
    },
    "GetProtectedQueryInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "protectedQueryIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership in a protected query instance.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "protectedQueryIdentifier":{
          "shape":"ProtectedQueryIdentifier",
          "documentation":"<p>The identifier for a protected query instance.</p>",
          "location":"uri",
          "locationName":"protectedQueryIdentifier"
        }
      }
    },
    "GetProtectedQueryOutput":{
      "type":"structure",
      "required":["protectedQuery"],
      "members":{
        "protectedQuery":{
          "shape":"ProtectedQuery",
          "documentation":"<p>The query processing metadata.</p>"
        }
      }
    },
    "GetSchemaAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "name",
        "type"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the schema to retrieve the analysis rule for.</p>",
          "location":"uri",
          "locationName":"name"
        },
        "type":{
          "shape":"AnalysisRuleType",
          "documentation":"<p>The type of the schema analysis rule to retrieve. Schema analysis rules are uniquely identified by a combination of the collaboration, the schema name, and their type.</p>",
          "location":"uri",
          "locationName":"type"
        }
      }
    },
    "GetSchemaAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"AnalysisRule",
          "documentation":"<p>A specification about how data from the configured table can be used.</p>"
        }
      }
    },
    "GetSchemaInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "name"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the relation to retrieve the schema for.</p>",
          "location":"uri",
          "locationName":"name"
        }
      }
    },
    "GetSchemaOutput":{
      "type":"structure",
      "required":["schema"],
      "members":{
        "schema":{
          "shape":"Schema",
          "documentation":"<p>The entire schema object.</p>"
        }
      }
    },
    "GlueDatabaseName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_]+-)*([a-zA-Z0-9_]+))?"
    },
    "GlueTableName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?"
    },
    "GlueTableReference":{
      "type":"structure",
      "required":[
        "tableName",
        "databaseName"
      ],
      "members":{
        "region":{
          "shape":"CommercialRegion",
          "documentation":"<p>The Amazon Web Services Region where the Glue table is located. This parameter is required to uniquely identify and access tables across different Regions.</p>"
        },
        "tableName":{
          "shape":"GlueTableName",
          "documentation":"<p>The name of the Glue table.</p>"
        },
        "databaseName":{
          "shape":"GlueDatabaseName",
          "documentation":"<p>The name of the database the Glue table belongs to.</p>"
        }
      },
      "documentation":"<p>A reference to a table within an Glue data catalog.</p>"
    },
    "Hash":{
      "type":"structure",
      "members":{
        "sha256":{
          "shape":"String",
          "documentation":"<p> The SHA-256 hash value.</p>"
        }
      },
      "documentation":"<p> Hash</p>"
    },
    "HashList":{
      "type":"list",
      "member":{"shape":"Hash"}
    },
    "IdMappingConfig":{
      "type":"structure",
      "required":["allowUseAsDimensionColumn"],
      "members":{
        "allowUseAsDimensionColumn":{
          "shape":"Boolean",
          "documentation":"<p>An indicator as to whether you can use your column as a dimension column in the ID mapping table (<code>TRUE</code>) or not (<code>FALSE</code>).</p> <p>Default is <code>FALSE</code>.</p>"
        }
      },
      "documentation":"<p>The configuration settings for the ID mapping table.</p>"
    },
    "IdMappingTable":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "inputReferenceConfig",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "name",
        "createTime",
        "updateTime",
        "inputReferenceProperties"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table.</p>"
        },
        "arn":{
          "shape":"IdMappingTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ID mapping table.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdMappingTableInputReferenceConfig",
          "documentation":"<p>The input reference configuration for the ID mapping table.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the membership resource for the ID mapping table.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership resource for the ID mapping table.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this ID mapping table.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this ID mapping table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the ID mapping table.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of the ID mapping table.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the ID mapping table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the ID mapping table was updated.</p>"
        },
        "inputReferenceProperties":{
          "shape":"IdMappingTableInputReferenceProperties",
          "documentation":"<p>The input reference properties for the ID mapping table.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Web Services KMS key.</p>"
        },
        "childResources":{
          "shape":"ChildResourceList",
          "documentation":"<p>The child resources that depend on this ID mapping table.</p>"
        }
      },
      "documentation":"<p>Describes information about the ID mapping table.</p>"
    },
    "IdMappingTableArn":{
      "type":"string",
      "max":200,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/idmappingtable/[\\d\\w-]+"
    },
    "IdMappingTableInputReferenceArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(idmappingworkflow/.*)"
    },
    "IdMappingTableInputReferenceConfig":{
      "type":"structure",
      "required":[
        "inputReferenceArn",
        "manageResourcePolicies"
      ],
      "members":{
        "inputReferenceArn":{
          "shape":"IdMappingTableInputReferenceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the referenced resource in Entity Resolution. Valid values are ID mapping workflow ARNs.</p>"
        },
        "manageResourcePolicies":{
          "shape":"Boolean",
          "documentation":"<p>When <code>TRUE</code>, Clean Rooms manages permissions for the ID mapping table resource. </p> <p>When <code>FALSE</code>, the resource owner manages permissions for the ID mapping table resource.</p>"
        }
      },
      "documentation":"<p>Provides the input reference configuration for the ID mapping table.</p>"
    },
    "IdMappingTableInputReferenceProperties":{
      "type":"structure",
      "required":["idMappingTableInputSource"],
      "members":{
        "idMappingTableInputSource":{
          "shape":"IdMappingTableInputSourceList",
          "documentation":"<p>The input source of the ID mapping table.</p>"
        }
      },
      "documentation":"<p>The input reference properties for the ID mapping table.</p>"
    },
    "IdMappingTableInputSource":{
      "type":"structure",
      "required":[
        "idNamespaceAssociationId",
        "type"
      ],
      "members":{
        "idNamespaceAssociationId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the ID namespace association.</p>"
        },
        "type":{
          "shape":"IdNamespaceType",
          "documentation":"<p>The type of the input source of the ID mapping table.</p>"
        }
      },
      "documentation":"<p>The input source of the ID mapping table.</p>"
    },
    "IdMappingTableInputSourceList":{
      "type":"list",
      "member":{"shape":"IdMappingTableInputSource"},
      "max":2,
      "min":2
    },
    "IdMappingTableSchemaTypeProperties":{
      "type":"structure",
      "required":["idMappingTableInputSource"],
      "members":{
        "idMappingTableInputSource":{
          "shape":"IdMappingTableInputSourceList",
          "documentation":"<p>Defines which ID namespace associations are used to create the ID mapping table.</p>"
        },
        "idMappingTableId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table.</p>"
        }
      },
      "documentation":"<p>Additional properties that are specific to the type of the associated schema.</p>"
    },
    "IdMappingTableSummary":{
      "type":"structure",
      "required":[
        "collaborationArn",
        "collaborationId",
        "membershipId",
        "membershipArn",
        "createTime",
        "updateTime",
        "id",
        "arn",
        "inputReferenceConfig",
        "name"
      ],
      "members":{
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this ID mapping table.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this ID mapping table.</p>"
        },
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership resource for this ID mapping table.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership resource for this ID mapping table.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which this ID mapping table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which this ID mapping table was updated.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of this ID mapping table.</p>"
        },
        "arn":{
          "shape":"IdMappingTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of this ID mapping table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of this ID mapping table.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdMappingTableInputReferenceConfig",
          "documentation":"<p>The input reference configuration for the ID mapping table.</p>"
        },
        "name":{
          "shape":"ResourceAlias",
          "documentation":"<p>The name of this ID mapping table.</p>"
        }
      },
      "documentation":"<p>Detailed information about the ID mapping table.</p>"
    },
    "IdMappingTableSummaryList":{
      "type":"list",
      "member":{"shape":"IdMappingTableSummary"}
    },
    "IdMappingWorkflowsSupported":{
      "type":"list",
      "member":{"shape":"Document"}
    },
    "IdNamespaceAssociation":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "name",
        "createTime",
        "updateTime",
        "inputReferenceConfig",
        "inputReferenceProperties"
      ],
      "members":{
        "id":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier for this ID namespace association.</p>"
        },
        "arn":{
          "shape":"IdNamespaceAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ID namespace association.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the membership resource for this ID namespace association.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership resource for this ID namespace association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this ID namespace association.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this ID namespace association.</p>"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>The name of this ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the ID namespace association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the ID namespace association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the ID namespace association was updated.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdNamespaceAssociationInputReferenceConfig",
          "documentation":"<p>The input reference configuration for the ID namespace association.</p>"
        },
        "inputReferenceProperties":{
          "shape":"IdNamespaceAssociationInputReferenceProperties",
          "documentation":"<p>The input reference properties for the ID namespace association.</p>"
        },
        "idMappingConfig":{
          "shape":"IdMappingConfig",
          "documentation":"<p>The configuration settings for the ID mapping table.</p>"
        }
      },
      "documentation":"<p>Provides information to create the ID namespace association.</p>"
    },
    "IdNamespaceAssociationArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/idnamespaceassociation/[\\d\\w-]+"
    },
    "IdNamespaceAssociationIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "IdNamespaceAssociationInputReferenceArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:entityresolution:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:idnamespace/[\\d\\w-]+"
    },
    "IdNamespaceAssociationInputReferenceConfig":{
      "type":"structure",
      "required":[
        "inputReferenceArn",
        "manageResourcePolicies"
      ],
      "members":{
        "inputReferenceArn":{
          "shape":"IdNamespaceAssociationInputReferenceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Entity Resolution resource that is being associated to the collaboration. Valid resource ARNs are from the ID namespaces that you own.</p>"
        },
        "manageResourcePolicies":{
          "shape":"Boolean",
          "documentation":"<p>When <code>TRUE</code>, Clean Rooms manages permissions for the ID namespace association resource.</p> <p>When <code>FALSE</code>, the resource owner manages permissions for the ID namespace association resource.</p>"
        }
      },
      "documentation":"<p>Provides the information for the ID namespace association input reference configuration.</p>"
    },
    "IdNamespaceAssociationInputReferenceProperties":{
      "type":"structure",
      "required":[
        "idNamespaceType",
        "idMappingWorkflowsSupported"
      ],
      "members":{
        "idNamespaceType":{
          "shape":"IdNamespaceType",
          "documentation":"<p>The ID namespace type for this ID namespace association.</p>"
        },
        "idMappingWorkflowsSupported":{
          "shape":"IdMappingWorkflowsSupported",
          "documentation":"<p>Defines how ID mapping workflows are supported for this ID namespace association.</p>"
        }
      },
      "documentation":"<p>Provides the information for the ID namespace association input reference properties.</p>"
    },
    "IdNamespaceAssociationInputReferencePropertiesSummary":{
      "type":"structure",
      "required":["idNamespaceType"],
      "members":{
        "idNamespaceType":{
          "shape":"IdNamespaceType",
          "documentation":"<p>The ID namespace type for this ID namespace association.</p>"
        }
      },
      "documentation":"<p>Detailed information about the ID namespace association input reference properties.</p>"
    },
    "IdNamespaceAssociationSummary":{
      "type":"structure",
      "required":[
        "membershipId",
        "membershipArn",
        "collaborationArn",
        "collaborationId",
        "createTime",
        "updateTime",
        "id",
        "arn",
        "inputReferenceConfig",
        "name",
        "inputReferenceProperties"
      ],
      "members":{
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership resource for this ID namespace association.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership resource for this ID namespace association.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains this ID namespace association.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this ID namespace association.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which this ID namespace association was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which this ID namespace association has been updated.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of this ID namespace association.</p>"
        },
        "arn":{
          "shape":"IdNamespaceAssociationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of this ID namespace association.</p>"
        },
        "inputReferenceConfig":{
          "shape":"IdNamespaceAssociationInputReferenceConfig",
          "documentation":"<p>The input reference configuration details for this ID namespace association.</p>"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>The name of the ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the ID namespace association.</p>"
        },
        "inputReferenceProperties":{
          "shape":"IdNamespaceAssociationInputReferencePropertiesSummary",
          "documentation":"<p>The input reference properties for this ID namespace association.</p>"
        }
      },
      "documentation":"<p>Detailed information about the ID namespace association.</p>"
    },
    "IdNamespaceAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"IdNamespaceAssociationSummary"}
    },
    "IdNamespaceType":{
      "type":"string",
      "enum":[
        "SOURCE",
        "TARGET"
      ]
    },
    "InheritedAdditionalAnalyses":{
      "type":"structure",
      "required":[
        "value",
        "sources"
      ],
      "members":{
        "value":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p>The effective additional analyses setting inherited from parent tables.</p>"
        },
        "sources":{
          "shape":"InheritedAdditionalAnalysesSourceList",
          "documentation":"<p>The list of parent tables that contribute to this inherited constraint.</p>"
        }
      },
      "documentation":"<p>Contains the inherited additional analyses constraint and its sources from parent tables.</p>"
    },
    "InheritedAdditionalAnalysesSource":{
      "type":"structure",
      "required":[
        "name",
        "id",
        "type",
        "value",
        "sourceAccountId"
      ],
      "members":{
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the parent table.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the parent table.</p>"
        },
        "type":{
          "shape":"BaseTableDependencyType",
          "documentation":"<p>The type of the parent table.</p>"
        },
        "value":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p>The additional analyses setting defined on the parent table.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member who owns the parent table.</p>"
        }
      },
      "documentation":"<p>Contains information about a parent table that contributes an additional analyses constraint.</p>"
    },
    "InheritedAdditionalAnalysesSourceList":{
      "type":"list",
      "member":{"shape":"InheritedAdditionalAnalysesSource"}
    },
    "InheritedAllowedAdditionalAnalyses":{
      "type":"structure",
      "required":[
        "value",
        "sources"
      ],
      "members":{
        "value":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p>The effective list of allowed additional analyses inherited from parent tables.</p>"
        },
        "sources":{
          "shape":"InheritedAllowedAdditionalAnalysesSourceList",
          "documentation":"<p>The list of parent tables that contribute to this inherited constraint.</p>"
        }
      },
      "documentation":"<p>Contains the inherited allowed additional analyses constraint and its sources from parent tables.</p>"
    },
    "InheritedAllowedAdditionalAnalysesSource":{
      "type":"structure",
      "required":[
        "name",
        "id",
        "type",
        "value",
        "sourceAccountId"
      ],
      "members":{
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the parent table.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the parent table.</p>"
        },
        "type":{
          "shape":"BaseTableDependencyType",
          "documentation":"<p>The type of the parent table.</p>"
        },
        "value":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p>The allowed additional analyses defined on the parent table.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member who owns the parent table.</p>"
        }
      },
      "documentation":"<p>Contains information about a parent table that contributes an allowed additional analyses constraint.</p>"
    },
    "InheritedAllowedAdditionalAnalysesSourceList":{
      "type":"list",
      "member":{"shape":"InheritedAllowedAdditionalAnalysesSource"}
    },
    "InheritedAllowedResultReceivers":{
      "type":"structure",
      "required":[
        "value",
        "sources"
      ],
      "members":{
        "value":{
          "shape":"AccountIdList",
          "documentation":"<p>The effective list of Amazon Web Services account IDs allowed to receive results, inherited from parent tables.</p>"
        },
        "sources":{
          "shape":"InheritedAllowedResultReceiversSourceList",
          "documentation":"<p>The list of parent tables that contribute to this inherited constraint.</p>"
        }
      },
      "documentation":"<p>Contains the inherited allowed result receivers constraint and its sources from parent tables.</p>"
    },
    "InheritedAllowedResultReceiversSource":{
      "type":"structure",
      "required":[
        "name",
        "id",
        "type",
        "value",
        "sourceAccountId"
      ],
      "members":{
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the parent table.</p>"
        },
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the parent table.</p>"
        },
        "type":{
          "shape":"BaseTableDependencyType",
          "documentation":"<p>The type of the parent table.</p>"
        },
        "value":{
          "shape":"AccountIdList",
          "documentation":"<p>The allowed result receiver account IDs defined on the parent table.</p>"
        },
        "sourceAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member who owns the parent table.</p>"
        }
      },
      "documentation":"<p>Contains information about a parent table that contributes an allowed result receivers constraint.</p>"
    },
    "InheritedAllowedResultReceiversSourceList":{
      "type":"list",
      "member":{"shape":"InheritedAllowedResultReceiversSource"}
    },
    "InheritedDisallowedOutputColumns":{
      "type":"structure",
      "required":[
        "value",
        "columnLineage"
      ],
      "members":{
        "value":{
          "shape":"AnalysisRuleColumnNameList",
          "documentation":"<p>The list of column names that are disallowed from appearing in query output, inherited from parent tables.</p>"
        },
        "columnLineage":{
          "shape":"ColumnLineageList",
          "documentation":"<p>The lineage information that traces each disallowed output column back to its source in a parent table.</p>"
        }
      },
      "documentation":"<p>Contains the inherited disallowed output columns constraint and the column lineage tracing each column to its source.</p>"
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "IntermediateTable":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "membershipArn",
        "membershipId",
        "collaborationArn",
        "collaborationId",
        "createTime",
        "updateTime",
        "status",
        "populationAnalysisConfiguration"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the intermediate table.</p>"
        },
        "arn":{
          "shape":"IntermediateTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the intermediate table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the intermediate table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the intermediate table.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership that contains the intermediate table.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains the intermediate table.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains the intermediate table.</p>"
        },
        "childResources":{
          "shape":"ChildResourceList",
          "documentation":"<p>The child resources that depend on this intermediate table.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the intermediate table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the intermediate table was last updated.</p>"
        },
        "status":{
          "shape":"IntermediateTableStatus",
          "documentation":"<p>The current status of the intermediate table.</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>The reason for the current status of the intermediate table.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt the intermediate table data.</p>"
        },
        "populationAnalysisConfiguration":{
          "shape":"PopulationAnalysisConfiguration",
          "documentation":"<p>The analysis configuration that defines the query used to populate the intermediate table.</p>"
        },
        "retentionInDays":{
          "shape":"Integer",
          "documentation":"<p>The number of days that populated data is retained before expiring.</p>"
        },
        "tableDependencies":{
          "shape":"DependencyList",
          "documentation":"<p>The list of base tables that this intermediate table depends on.</p>"
        },
        "intermediateTableVersion":{
          "shape":"IntermediateTableActiveVersion",
          "documentation":"<p>The details of the currently active version of the intermediate table.</p>"
        },
        "analysisRuleTypes":{
          "shape":"IntermediateTableAnalysisRuleTypeList",
          "documentation":"<p>The types of analysis rules associated with the intermediate table.</p>"
        },
        "schema":{
          "shape":"IntermediateTableSchema",
          "documentation":"<p>The schema of the intermediate table, containing column definitions. Available after the table has been successfully populated.</p>"
        }
      },
      "documentation":"<p>Contains the details of an intermediate table in Clean Rooms. An intermediate table stores a query definition and its materialized results within a collaboration.</p>"
    },
    "IntermediateTableActiveVersion":{
      "type":"structure",
      "required":[
        "versionId",
        "analysisId",
        "analysisType",
        "inheritedConstraints"
      ],
      "members":{
        "versionId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the active version.</p>"
        },
        "analysisId":{
          "shape":"AnalysisIdentifier",
          "documentation":"<p>The identifier of the protected query that created this version.</p>"
        },
        "analysisType":{
          "shape":"PopulateIntermediateTableAnalysisType",
          "documentation":"<p>The type of analysis that created this version.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt this version's data.</p>"
        },
        "parameters":{
          "shape":"ParameterMap",
          "documentation":"<p>The runtime parameters that were used when populating this version.</p>"
        },
        "inheritedConstraints":{
          "shape":"IntermediateTableInheritedConstraints",
          "documentation":"<p>The privacy constraints inherited from parent tables at the time this version was populated.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when this version expires based on the retention period.</p>"
        }
      },
      "documentation":"<p>Contains the details of the currently active version of an intermediate table.</p>"
    },
    "IntermediateTableAnalysisRule":{
      "type":"structure",
      "required":[
        "intermediateTableIdentifier",
        "intermediateTableArn",
        "analysisRulePolicy",
        "analysisRuleType",
        "createTime",
        "updateTime"
      ],
      "members":{
        "intermediateTableIdentifier":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the intermediate table associated with this analysis rule.</p>"
        },
        "intermediateTableArn":{
          "shape":"IntermediateTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the intermediate table associated with this analysis rule.</p>"
        },
        "analysisRulePolicy":{
          "shape":"IntermediateTableAnalysisRulePolicy",
          "documentation":"<p>The policy of the analysis rule.</p>"
        },
        "analysisRuleType":{
          "shape":"IntermediateTableAnalysisRuleType",
          "documentation":"<p>The type of the analysis rule.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the analysis rule was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the analysis rule was last updated.</p>"
        }
      },
      "documentation":"<p>Contains the details of an analysis rule for an intermediate table.</p>"
    },
    "IntermediateTableAnalysisRuleCustom":{
      "type":"structure",
      "members":{
        "allowedAnalyses":{
          "shape":"AllowedAnalysesList",
          "documentation":"<p>The list of allowed analyses that can be performed on the intermediate table.</p>"
        },
        "additionalAnalyses":{
          "shape":"AdditionalAnalyses",
          "documentation":"<p>The setting that controls whether additional analyses are allowed on the intermediate table.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"AllowedAdditionalAnalyses",
          "documentation":"<p>The list of allowed additional analyses for the intermediate table.</p>"
        },
        "allowedAnalysisProviders":{
          "shape":"AllowedAnalysisProviderList",
          "documentation":"<p>The list of Amazon Web Services account IDs for the allowed analysis providers.</p>"
        },
        "allowedResultReceivers":{
          "shape":"AllowedResultReceivers",
          "documentation":"<p>The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.</p>"
        },
        "differentialPrivacy":{"shape":"DifferentialPrivacyConfiguration"},
        "disallowedOutputColumns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>The list of columns that are not allowed in the query output.</p>"
        }
      },
      "documentation":"<p>Contains the custom analysis rule configuration for an intermediate table.</p>"
    },
    "IntermediateTableAnalysisRulePolicy":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"IntermediateTableAnalysisRulePolicyV1",
          "documentation":"<p>The version 1 policy for the analysis rule.</p>"
        }
      },
      "documentation":"<p>Contains the policy for an intermediate table analysis rule.</p>",
      "union":true
    },
    "IntermediateTableAnalysisRulePolicyV1":{
      "type":"structure",
      "members":{
        "custom":{
          "shape":"IntermediateTableAnalysisRuleCustom",
          "documentation":"<p>The custom analysis rule policy.</p>"
        }
      },
      "documentation":"<p>Contains the version 1 policy for an intermediate table analysis rule.</p>",
      "union":true
    },
    "IntermediateTableAnalysisRuleType":{
      "type":"string",
      "enum":["CUSTOM"]
    },
    "IntermediateTableAnalysisRuleTypeList":{
      "type":"list",
      "member":{"shape":"IntermediateTableAnalysisRuleType"}
    },
    "IntermediateTableArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership\\/[\\d\\w-]+\\/intermediatetable\\/[\\d\\w-]+"
    },
    "IntermediateTableColumn":{
      "type":"structure",
      "required":[
        "name",
        "type"
      ],
      "members":{
        "name":{
          "shape":"ColumnName",
          "documentation":"<p>The name of the column.</p>"
        },
        "type":{
          "shape":"IntermediateTableColumnTypeString",
          "documentation":"<p>The data type of the column.</p>"
        }
      },
      "documentation":"<p>Contains the name and type of a column in an intermediate table.</p>"
    },
    "IntermediateTableColumnList":{
      "type":"list",
      "member":{"shape":"IntermediateTableColumn"}
    },
    "IntermediateTableColumnTypeString":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*"
    },
    "IntermediateTableComputeConfiguration":{
      "type":"structure",
      "members":{
        "queryComputeConfiguration":{"shape":"WorkerComputeConfiguration"}
      },
      "documentation":"<p>The compute configuration for an intermediate table population operation.</p>",
      "union":true
    },
    "IntermediateTableDependency":{
      "type":"structure",
      "required":[
        "id",
        "name",
        "type",
        "parentType",
        "creatorAccountId"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the dependency table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the dependency table.</p>"
        },
        "type":{
          "shape":"BaseTableDependencyType",
          "documentation":"<p>The type of the dependency table.</p>"
        },
        "parentType":{
          "shape":"BaseTableParentType",
          "documentation":"<p>Whether the dependency is direct or indirect. A direct dependency is a table explicitly referenced in the stored query, while an indirect dependency is referenced through another intermediate table.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member who owns the dependency table.</p>"
        }
      },
      "documentation":"<p>Contains information about a base table that an intermediate table depends on.</p>"
    },
    "IntermediateTableIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "IntermediateTableInheritedConstraints":{
      "type":"structure",
      "members":{
        "additionalAnalyses":{
          "shape":"InheritedAdditionalAnalyses",
          "documentation":"<p>The inherited additional analyses constraint.</p>"
        },
        "allowedAdditionalAnalyses":{
          "shape":"InheritedAllowedAdditionalAnalyses",
          "documentation":"<p>The inherited allowed additional analyses constraint.</p>"
        },
        "allowedResultReceivers":{
          "shape":"InheritedAllowedResultReceivers",
          "documentation":"<p>The inherited allowed result receivers constraint.</p>"
        },
        "disallowedOutputColumns":{
          "shape":"InheritedDisallowedOutputColumns",
          "documentation":"<p>The inherited disallowed output columns constraint.</p>"
        }
      },
      "documentation":"<p>Contains the privacy constraints inherited from parent tables for an intermediate table version.</p>"
    },
    "IntermediateTableOutputConfiguration":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the intermediate table.</p>"
        },
        "arn":{
          "shape":"IntermediateTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the intermediate table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the intermediate table.</p>"
        }
      },
      "documentation":"<p>Contains the output configuration of an intermediate table when a protected query populates it.</p>"
    },
    "IntermediateTableSchema":{
      "type":"structure",
      "required":["columns"],
      "members":{
        "columns":{
          "shape":"ColumnList",
          "documentation":"<p>The list of columns in the intermediate table schema.</p>"
        }
      },
      "documentation":"<p>Contains the schema definition of an intermediate table.</p>"
    },
    "IntermediateTableSchemaTypeProperties":{
      "type":"structure",
      "required":["intermediateTableId"],
      "members":{
        "intermediateTableId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the intermediate table.</p>"
        }
      },
      "documentation":"<p>Contains the schema type properties for an intermediate table.</p>"
    },
    "IntermediateTableStatus":{
      "type":"string",
      "enum":[
        "CREATED",
        "POPULATE_STARTED",
        "POPULATE_SUCCESS",
        "POPULATE_FAILED",
        "DISALLOWED_BY_DATA_PROVIDER",
        "BASE_TABLE_REMOVED",
        "RETENTION_PERIOD_EXPIRED"
      ]
    },
    "IntermediateTableSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "name",
        "membershipArn",
        "membershipId",
        "collaborationArn",
        "collaborationId",
        "createTime",
        "updateTime",
        "status"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the intermediate table.</p>"
        },
        "arn":{
          "shape":"IntermediateTableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the intermediate table.</p>"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the intermediate table.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>The description of the intermediate table.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the membership that contains the intermediate table.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the collaboration that contains the intermediate table.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains the intermediate table.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the intermediate table was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the intermediate table was last updated.</p>"
        },
        "status":{
          "shape":"IntermediateTableStatus",
          "documentation":"<p>The current status of the intermediate table.</p>"
        },
        "retentionInDays":{
          "shape":"Integer",
          "documentation":"<p>The number of days that populated data is retained before expiring.</p>"
        },
        "analysisRuleTypes":{
          "shape":"IntermediateTableAnalysisRuleTypeList",
          "documentation":"<p>The types of analysis rules associated with the intermediate table.</p>"
        }
      },
      "documentation":"<p>Contains summary information about an intermediate table.</p>"
    },
    "IntermediateTableSummaryList":{
      "type":"list",
      "member":{"shape":"IntermediateTableSummary"}
    },
    "IntermediateTableVersionStatus":{
      "type":"string",
      "enum":[
        "POPULATE_STARTED",
        "POPULATE_SUCCESS",
        "POPULATE_FAILED",
        "RETENTION_PERIOD_EXPIRED"
      ]
    },
    "IntermediateTableVersionSummary":{
      "type":"structure",
      "required":[
        "versionId",
        "tableId",
        "createTime",
        "analysisId",
        "status",
        "analysisType"
      ],
      "members":{
        "versionId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the version.</p>"
        },
        "tableId":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table that this version belongs to.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the version was created.</p>"
        },
        "analysisId":{
          "shape":"AnalysisIdentifier",
          "documentation":"<p>The identifier of the protected query that created this version.</p>"
        },
        "status":{
          "shape":"IntermediateTableVersionStatus",
          "documentation":"<p>The status of the version.</p>"
        },
        "analysisType":{
          "shape":"PopulateIntermediateTableAnalysisType",
          "documentation":"<p>The type of analysis that created this version.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the KMS key used to encrypt this version's data.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when this version expires based on the retention period.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a version of an intermediate table.</p>"
    },
    "IntermediateTableVersionSummaryList":{
      "type":"list",
      "member":{"shape":"IntermediateTableVersionSummary"}
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Unexpected error during processing of request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "JobComputePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration creator has configured the collaboration member to pay for query and job compute costs (<code>TRUE</code>) or has not configured the collaboration member to pay for query and job compute costs (<code>FALSE</code>).</p> <p>One or more members can be configured as payer candidates for query and job compute costs.</p> <p>An error is returned if the collaboration creator sets a <code>FALSE</code> value for the member who can run queries and jobs.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's payment responsibilities set by the collaboration creator for query and job compute costs.</p>"
    },
    "JobParameterMap":{
      "type":"map",
      "key":{"shape":"JobParameterName"},
      "value":{"shape":"JobParameterValue"},
      "sensitive":true
    },
    "JobParameterName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[0-9a-zA-Z_]+"
    },
    "JobParameterValue":{
      "type":"string",
      "max":1000,
      "min":0
    },
    "JobType":{
      "type":"string",
      "enum":[
        "BATCH",
        "INCREMENTAL",
        "DELETE_ONLY"
      ]
    },
    "JoinOperator":{
      "type":"string",
      "enum":[
        "OR",
        "AND"
      ]
    },
    "JoinOperatorsList":{
      "type":"list",
      "member":{"shape":"JoinOperator"},
      "max":2,
      "min":0
    },
    "JoinRequiredOption":{
      "type":"string",
      "enum":["QUERY_RUNNER"]
    },
    "KMSKeyArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws:kms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:key/[a-zA-Z0-9-]+"
    },
    "KeyPrefix":{
      "type":"string",
      "max":512,
      "min":0,
      "pattern":"[\\w!.=*/-]*"
    },
    "ListAnalysisTemplatesInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListAnalysisTemplatesOutput":{
      "type":"structure",
      "required":["analysisTemplateSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "analysisTemplateSummaries":{
          "shape":"AnalysisTemplateSummaryList",
          "documentation":"<p>Lists analysis template metadata.</p>"
        }
      }
    },
    "ListCollaborationAnalysisTemplatesInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCollaborationAnalysisTemplatesOutput":{
      "type":"structure",
      "required":["collaborationAnalysisTemplateSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "collaborationAnalysisTemplateSummaries":{
          "shape":"CollaborationAnalysisTemplateSummaryList",
          "documentation":"<p>The metadata of the analysis template within a collaboration.</p>"
        }
      }
    },
    "ListCollaborationChangeRequestsInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier of the collaboration that the change request is made against.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "status":{
          "shape":"ChangeRequestStatus",
          "documentation":"<p>A filter to only return change requests with the specified status.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCollaborationChangeRequestsOutput":{
      "type":"structure",
      "required":["collaborationChangeRequestSummaries"],
      "members":{
        "collaborationChangeRequestSummaries":{
          "shape":"CollaborationChangeRequestSummaryList",
          "documentation":"<p>The list of collaboration change request summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListCollaborationConfiguredAudienceModelAssociationsInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the configured audience model association belongs to. Accepts a collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCollaborationConfiguredAudienceModelAssociationsOutput":{
      "type":"structure",
      "required":["collaborationConfiguredAudienceModelAssociationSummaries"],
      "members":{
        "collaborationConfiguredAudienceModelAssociationSummaries":{
          "shape":"CollaborationConfiguredAudienceModelAssociationSummaryList",
          "documentation":"<p>The metadata of the configured audience model association within a collaboration.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListCollaborationIdNamespaceAssociationsInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration that contains the ID namespace associations that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met.&gt;</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCollaborationIdNamespaceAssociationsOutput":{
      "type":"structure",
      "required":["collaborationIdNamespaceAssociationSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token value provided to access the next page of results.</p>"
        },
        "collaborationIdNamespaceAssociationSummaries":{
          "shape":"CollaborationIdNamespaceAssociationSummaryList",
          "documentation":"<p>The summary information of the collaboration ID namespace associations that you requested.</p>"
        }
      }
    },
    "ListCollaborationPrivacyBudgetTemplatesInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for one of your collaborations.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCollaborationPrivacyBudgetTemplatesOutput":{
      "type":"structure",
      "required":["collaborationPrivacyBudgetTemplateSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "collaborationPrivacyBudgetTemplateSummaries":{
          "shape":"CollaborationPrivacyBudgetTemplateSummaryList",
          "documentation":"<p>An array that summarizes the collaboration privacy budget templates. The summary includes collaboration information, creation information, the privacy budget type.</p>"
        }
      }
    },
    "ListCollaborationPrivacyBudgetsInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "privacyBudgetType"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for one of your collaborations.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>Specifies the type of the privacy budget.</p>",
          "location":"querystring",
          "locationName":"privacyBudgetType"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "accessBudgetResourceArn":{
          "shape":"BudgetedResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Configured Table Association (ConfiguredTableAssociation) used to filter privacy budgets.</p>",
          "location":"querystring",
          "locationName":"accessBudgetResourceArn"
        }
      }
    },
    "ListCollaborationPrivacyBudgetsOutput":{
      "type":"structure",
      "required":["collaborationPrivacyBudgetSummaries"],
      "members":{
        "collaborationPrivacyBudgetSummaries":{
          "shape":"CollaborationPrivacyBudgetSummaryList",
          "documentation":"<p>Summaries of the collaboration privacy budgets.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListCollaborationsInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "memberStatus":{
          "shape":"FilterableMemberStatus",
          "documentation":"<p>The caller's status in a collaboration.</p>",
          "location":"querystring",
          "locationName":"memberStatus"
        }
      }
    },
    "ListCollaborationsOutput":{
      "type":"structure",
      "required":["collaborationList"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "collaborationList":{
          "shape":"CollaborationSummaryList",
          "documentation":"<p>The list of collaborations.</p>"
        }
      }
    },
    "ListConfiguredAudienceModelAssociationsInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for a membership that contains the configured audience model associations that you want to retrieve.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListConfiguredAudienceModelAssociationsOutput":{
      "type":"structure",
      "required":["configuredAudienceModelAssociationSummaries"],
      "members":{
        "configuredAudienceModelAssociationSummaries":{
          "shape":"ConfiguredAudienceModelAssociationSummaryList",
          "documentation":"<p>Summaries of the configured audience model associations that you requested.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token value provided to access the next page of results.</p>"
        }
      }
    },
    "ListConfiguredTableAssociationsInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership to list configured table associations for. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListConfiguredTableAssociationsOutput":{
      "type":"structure",
      "required":["configuredTableAssociationSummaries"],
      "members":{
        "configuredTableAssociationSummaries":{
          "shape":"ConfiguredTableAssociationSummaryList",
          "documentation":"<p>The retrieved list of configured table associations.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListConfiguredTablesInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListConfiguredTablesOutput":{
      "type":"structure",
      "required":["configuredTableSummaries"],
      "members":{
        "configuredTableSummaries":{
          "shape":"ConfiguredTableSummaryList",
          "documentation":"<p>The configured tables listed by the request.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListIdMappingTablesInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping tables that you want to view.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListIdMappingTablesOutput":{
      "type":"structure",
      "required":["idMappingTableSummaries"],
      "members":{
        "idMappingTableSummaries":{
          "shape":"IdMappingTableSummaryList",
          "documentation":"<p>The summary information of the ID mapping tables that you requested.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token value provided to access the next page of results.</p>"
        }
      }
    },
    "ListIdNamespaceAssociationsInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID namespace association that you want to view.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListIdNamespaceAssociationsOutput":{
      "type":"structure",
      "required":["idNamespaceAssociationSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The token value provided to access the next page of results.</p>"
        },
        "idNamespaceAssociationSummaries":{
          "shape":"IdNamespaceAssociationSummaryList",
          "documentation":"<p>The summary information of the ID namespace associations that you requested.</p>"
        }
      }
    },
    "ListIntermediateTableVersionsInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table for which to list versions.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a <code>nextToken</code> even if the <code>maxResults</code> value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListIntermediateTableVersionsOutput":{
      "type":"structure",
      "required":["intermediateTableVersionSummaries"],
      "members":{
        "intermediateTableVersionSummaries":{
          "shape":"IntermediateTableVersionSummaryList",
          "documentation":"<p>The list of intermediate table version summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListIntermediateTablesInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership for which to list intermediate tables.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a <code>nextToken</code> even if the <code>maxResults</code> value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListIntermediateTablesOutput":{
      "type":"structure",
      "required":["intermediateTableSummaries"],
      "members":{
        "intermediateTableSummaries":{
          "shape":"IntermediateTableSummaryList",
          "documentation":"<p>The list of intermediate table summaries.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListMembersInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier of the collaboration in which the members are listed.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListMembersOutput":{
      "type":"structure",
      "required":["memberSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "memberSummaries":{
          "shape":"MemberSummaryList",
          "documentation":"<p>The list of members returned by the ListMembers operation.</p>"
        }
      }
    },
    "ListMembershipsInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "status":{
          "shape":"MembershipStatus",
          "documentation":"<p>A filter which will return only memberships in the specified status.</p>",
          "location":"querystring",
          "locationName":"status"
        }
      }
    },
    "ListMembershipsOutput":{
      "type":"structure",
      "required":["membershipSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "membershipSummaries":{
          "shape":"MembershipSummaryList",
          "documentation":"<p>The list of memberships returned from the ListMemberships operation.</p>"
        }
      }
    },
    "ListPrivacyBudgetTemplatesInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget templates are retrieved from the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListPrivacyBudgetTemplatesOutput":{
      "type":"structure",
      "required":["privacyBudgetTemplateSummaries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "privacyBudgetTemplateSummaries":{
          "shape":"PrivacyBudgetTemplateSummaryList",
          "documentation":"<p>An array that summarizes the privacy budget templates. The summary includes collaboration information, creation information, and privacy budget type.</p>"
        }
      }
    },
    "ListPrivacyBudgetsInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "privacyBudgetType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget is retrieved from the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>The privacy budget type.</p>",
          "location":"querystring",
          "locationName":"privacyBudgetType"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "accessBudgetResourceArn":{
          "shape":"BudgetedResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the access budget resource to filter privacy budgets by.</p>",
          "location":"querystring",
          "locationName":"accessBudgetResourceArn"
        }
      }
    },
    "ListPrivacyBudgetsOutput":{
      "type":"structure",
      "required":["privacyBudgetSummaries"],
      "members":{
        "privacyBudgetSummaries":{
          "shape":"PrivacyBudgetSummaryList",
          "documentation":"<p>An array that summarizes the privacy budgets. The summary includes collaboration information, membership information, privacy budget template information, and privacy budget details.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListProtectedJobsInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for the membership in the collaboration.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "status":{
          "shape":"ProtectedJobStatus",
          "documentation":"<p>A filter on the status of the protected job.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListProtectedJobsOutput":{
      "type":"structure",
      "required":["protectedJobs"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "protectedJobs":{
          "shape":"ProtectedJobSummaryList",
          "documentation":"<p>A list of protected job summaries.</p>"
        }
      }
    },
    "ListProtectedQueriesInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for the membership in the collaboration.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "status":{
          "shape":"ProtectedQueryStatus",
          "documentation":"<p>A filter on the status of the protected query.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListProtectedQueriesOutput":{
      "type":"structure",
      "required":["protectedQueries"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        },
        "protectedQueries":{
          "shape":"ProtectedQuerySummaryList",
          "documentation":"<p>A list of protected queries.</p>"
        }
      }
    },
    "ListSchemasInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "schemaType":{
          "shape":"SchemaType",
          "documentation":"<p>If present, filter schemas by schema type.</p>",
          "location":"querystring",
          "locationName":"schemaType"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned for an API request call. The service chooses a default number if you don't set one. The service might return a `nextToken` even if the `maxResults` value has not been met.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListSchemasOutput":{
      "type":"structure",
      "required":["schemaSummaries"],
      "members":{
        "schemaSummaries":{
          "shape":"SchemaSummaryList",
          "documentation":"<p>The retrieved list of schemas.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token that's used to fetch the next set of results.</p>"
        }
      }
    },
    "ListTagsForResourceInput":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"CleanroomsArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the resource you want to list tags on.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceOutput":{
      "type":"structure",
      "required":["tags"],
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of objects specifying each key name and value.</p>"
        }
      }
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "MLMemberAbilities":{
      "type":"structure",
      "required":["customMLMemberAbilities"],
      "members":{
        "customMLMemberAbilities":{
          "shape":"CustomMLMemberAbilities",
          "documentation":"<p>The custom ML member abilities for a collaboration member. </p>"
        }
      },
      "documentation":"<p>The ML member abilities for a collaboration member.</p>"
    },
    "MLPaymentConfig":{
      "type":"structure",
      "members":{
        "modelTraining":{
          "shape":"ModelTrainingPaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the member for model training.</p>"
        },
        "modelInference":{
          "shape":"ModelInferencePaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the member for model inference.</p>"
        },
        "syntheticDataGeneration":{
          "shape":"SyntheticDataGenerationPaymentConfig",
          "documentation":"<p>The payment configuration for machine learning synthetic data generation.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's machine learning payment responsibilities set by the collaboration creator.</p>"
    },
    "MLSyntheticDataParameters":{
      "type":"structure",
      "required":[
        "epsilon",
        "maxMembershipInferenceAttackScore",
        "columnClassification"
      ],
      "members":{
        "epsilon":{
          "shape":"MLSyntheticDataParametersEpsilonDouble",
          "documentation":"<p>The epsilon value for differential privacy when generating synthetic data. Lower values provide stronger privacy guarantees but may reduce data utility.</p>"
        },
        "maxMembershipInferenceAttackScore":{
          "shape":"MaxMembershipInferenceAttackScore",
          "documentation":"<p>The maximum acceptable score for membership inference attack vulnerability. Synthetic data generation fails if the score for the resulting data exceeds this threshold.</p>"
        },
        "columnClassification":{
          "shape":"ColumnClassificationDetails",
          "documentation":"<p>Classification details for data columns that specify how each column should be treated during synthetic data generation.</p>"
        }
      },
      "documentation":"<p>Parameters that control the generation of synthetic data for machine learning, including privacy settings and column classification details.</p>"
    },
    "MLSyntheticDataParametersEpsilonDouble":{
      "type":"double",
      "box":true,
      "max":10,
      "min":0.0001
    },
    "MaxMembershipInferenceAttackScore":{
      "type":"double",
      "box":true,
      "max":1,
      "min":0.5
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "MemberAbilities":{
      "type":"list",
      "member":{"shape":"MemberAbility"}
    },
    "MemberAbility":{
      "type":"string",
      "enum":[
        "CAN_QUERY",
        "CAN_RECEIVE_RESULTS",
        "CAN_RUN_JOB"
      ]
    },
    "MemberChangeSpecification":{
      "type":"structure",
      "required":[
        "accountId",
        "memberAbilities"
      ],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member to add to the collaboration.</p>"
        },
        "memberAbilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration member. These determine what actions the member can perform within the collaboration.</p> <note> <p>The following values are currently not supported: <code>CAN_QUERY</code> and <code>CAN_RUN_JOB</code>. </p> <p>Set the value of <code>memberAbilities</code> to <code>[]</code> to allow a member to contribute data.</p> <p>Set the value of <code>memberAbilities</code> to <code>[CAN_RECEIVE_RESULTS]</code> to allow a member to contribute data and receive results.</p> </note>"
        },
        "mlMemberAbilities":{"shape":"MLMemberAbilities"},
        "paymentConfiguration":{"shape":"PaymentConfiguration"},
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>Specifies the display name that will be shown for this member in the collaboration. While this field is required when inviting new members, it becomes optional when modifying abilities of existing collaboration members. </p>"
        }
      },
      "documentation":"<p>Specifies changes to collaboration membership, including adding new members with their abilities and display names.</p>"
    },
    "MemberList":{
      "type":"list",
      "member":{"shape":"MemberSpecification"},
      "min":0
    },
    "MemberSpecification":{
      "type":"structure",
      "required":[
        "accountId",
        "memberAbilities",
        "displayName"
      ],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "memberAbilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration member.</p>"
        },
        "mlMemberAbilities":{
          "shape":"MLMemberAbilities",
          "documentation":"<p>The ML abilities granted to the collaboration member.</p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The member's display name.</p>"
        },
        "paymentConfiguration":{
          "shape":"PaymentConfiguration",
          "documentation":"<p>The collaboration member's payment responsibilities set by the collaboration creator. </p> <p>If the collaboration creator hasn't speciﬁed anyone as the member paying for query compute costs, then the member who can query is the default payer.</p>"
        }
      },
      "documentation":"<p>Basic metadata used to construct a new member.</p>"
    },
    "MemberStatus":{
      "type":"string",
      "enum":[
        "INVITED",
        "ACTIVE",
        "LEFT",
        "REMOVED"
      ]
    },
    "MemberSummary":{
      "type":"structure",
      "required":[
        "accountId",
        "status",
        "displayName",
        "abilities",
        "createTime",
        "updateTime",
        "paymentConfiguration"
      ],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "status":{
          "shape":"MemberStatus",
          "documentation":"<p>The status of the member. </p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The member's display name.</p>"
        },
        "abilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration member.</p>"
        },
        "mlAbilities":{
          "shape":"MLMemberAbilities",
          "documentation":"<p>Provides a summary of the ML abilities for the collaboration member.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the member was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the member metadata was last updated.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the member's associated membership, if present.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the member's associated membership, if present.</p>"
        },
        "paymentConfiguration":{
          "shape":"PaymentConfiguration",
          "documentation":"<p>The collaboration member's payment responsibilities set by the collaboration creator. </p>"
        }
      },
      "documentation":"<p>The member object listed by the request.</p>"
    },
    "MemberSummaryList":{
      "type":"list",
      "member":{"shape":"MemberSummary"}
    },
    "Membership":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationArn",
        "collaborationId",
        "collaborationCreatorAccountId",
        "collaborationCreatorDisplayName",
        "collaborationName",
        "createTime",
        "updateTime",
        "status",
        "memberAbilities",
        "queryLogStatus",
        "paymentConfiguration"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID of the membership.</p>"
        },
        "arn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the membership's associated collaboration.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the membership's collaboration.</p>"
        },
        "collaborationCreatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "collaborationCreatorDisplayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the collaboration creator.</p>"
        },
        "collaborationName":{
          "shape":"CollaborationName",
          "documentation":"<p>The name of the membership's collaboration.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the membership was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the membership metadata was last updated.</p>"
        },
        "status":{
          "shape":"MembershipStatus",
          "documentation":"<p>The status of the membership.</p>"
        },
        "memberAbilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration member.</p>"
        },
        "mlMemberAbilities":{
          "shape":"MLMemberAbilities",
          "documentation":"<p>Specifies the ML member abilities that are granted to a collaboration member.</p>"
        },
        "queryLogStatus":{
          "shape":"MembershipQueryLogStatus",
          "documentation":"<p>An indicator as to whether query logging has been enabled or disabled for the membership.</p> <p>When <code>ENABLED</code>, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "jobLogStatus":{
          "shape":"MembershipJobLogStatus",
          "documentation":"<p>An indicator as to whether job logging has been enabled or disabled for the collaboration. </p> <p>When <code>ENABLED</code>, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "defaultResultConfiguration":{
          "shape":"MembershipProtectedQueryResultConfiguration",
          "documentation":"<p>The default protected query result configuration as specified by the member who can receive results.</p>"
        },
        "defaultJobResultConfiguration":{
          "shape":"MembershipProtectedJobResultConfiguration",
          "documentation":"<p> The default job result configuration for the membership.</p>"
        },
        "paymentConfiguration":{
          "shape":"MembershipPaymentConfiguration",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member.</p>"
        },
        "isMetricsEnabled":{
          "shape":"Boolean",
          "documentation":"<p>An indicator as to whether Amazon CloudWatch metrics are enabled for the membership.</p> <p>When <code>true</code>, metrics about query execution are collected in Amazon CloudWatch.</p>"
        }
      },
      "documentation":"<p>The membership object.</p>"
    },
    "MembershipArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+"
    },
    "MembershipIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "MembershipJobComputePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration member has accepted to pay for job compute costs (<code>TRUE</code>) or has not accepted to pay for query and job compute costs (<code>FALSE</code>).</p> <p>There can be one or more members who are designated as payer candidates for queries and jobs. </p> <p>An error message is returned for the following reasons: </p> <ul> <li> <p>If you set the value to <code>FALSE</code> but you are responsible to pay for query and job compute costs. </p> </li> <li> <p>If you set the value to <code>TRUE</code> but you are not responsible to pay for query and job compute costs. </p> </li> </ul>"
        }
      },
      "documentation":"<p>An object representing the payment responsibilities accepted by the collaboration member for query and job compute costs.</p>"
    },
    "MembershipJobLogStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "MembershipMLPaymentConfig":{
      "type":"structure",
      "members":{
        "modelTraining":{
          "shape":"MembershipModelTrainingPaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the member for model training.</p>"
        },
        "modelInference":{
          "shape":"MembershipModelInferencePaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the member for model inference.</p>"
        },
        "syntheticDataGeneration":{
          "shape":"MembershipSyntheticDataGenerationPaymentConfig",
          "documentation":"<p>The payment configuration for synthetic data generation for this machine learning membership.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's machine learning payment responsibilities set by the collaboration creator.</p>"
    },
    "MembershipModelInferencePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration member has accepted to pay for model inference costs (<code>TRUE</code>) or has not accepted to pay for model inference costs (<code>FALSE</code>).</p> <p>If the collaboration creator has not specified anyone to pay for model inference costs, then the member who can query is the default payer. </p> <p>An error message is returned for the following reasons: </p> <ul> <li> <p>If you set the value to <code>FALSE</code> but you are responsible to pay for model inference costs. </p> </li> <li> <p>If you set the value to <code>TRUE</code> but you are not responsible to pay for model inference costs. </p> </li> </ul>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's model inference payment responsibilities set by the collaboration creator.</p>"
    },
    "MembershipModelTrainingPaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration member has accepted to pay for model training costs (<code>TRUE</code>) or has not accepted to pay for model training costs (<code>FALSE</code>).</p> <p>If the collaboration creator has not specified anyone to pay for model training costs, then the member who can query is the default payer. </p> <p>An error message is returned for the following reasons: </p> <ul> <li> <p>If you set the value to <code>FALSE</code> but you are responsible to pay for model training costs. </p> </li> <li> <p>If you set the value to <code>TRUE</code> but you are not responsible to pay for model training costs. </p> </li> </ul>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's model training payment responsibilities set by the collaboration creator.</p>"
    },
    "MembershipPaymentConfiguration":{
      "type":"structure",
      "required":["queryCompute"],
      "members":{
        "queryCompute":{
          "shape":"MembershipQueryComputePaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member for query compute costs.</p>"
        },
        "machineLearning":{
          "shape":"MembershipMLPaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member for machine learning costs.</p>"
        },
        "jobCompute":{
          "shape":"MembershipJobComputePaymentConfig",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member for job compute costs.</p>"
        }
      },
      "documentation":"<p>An object representing the payment responsibilities accepted by the collaboration member.</p>"
    },
    "MembershipProtectedJobOutputConfiguration":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"ProtectedJobS3OutputConfigurationInput",
          "documentation":"<p>Contains the configuration to write the job results to S3.</p>"
        }
      },
      "documentation":"<p>Contains configurations for protected job results.</p>",
      "union":true
    },
    "MembershipProtectedJobResultConfiguration":{
      "type":"structure",
      "required":[
        "outputConfiguration",
        "roleArn"
      ],
      "members":{
        "outputConfiguration":{
          "shape":"MembershipProtectedJobOutputConfiguration",
          "documentation":"<p> The output configuration for a protected job result.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The unique ARN for an IAM role that is used by Clean Rooms to write protected job results to the result location, given by the member who can receive results.</p>"
        }
      },
      "documentation":"<p>Contains configurations for protected job results.</p>"
    },
    "MembershipProtectedQueryOutputConfiguration":{
      "type":"structure",
      "members":{
        "s3":{"shape":"ProtectedQueryS3OutputConfiguration"}
      },
      "documentation":"<p>Contains configurations for protected query results.</p>",
      "union":true
    },
    "MembershipProtectedQueryResultConfiguration":{
      "type":"structure",
      "required":["outputConfiguration"],
      "members":{
        "outputConfiguration":{
          "shape":"MembershipProtectedQueryOutputConfiguration",
          "documentation":"<p>Configuration for protected query results.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The unique ARN for an IAM role that is used by Clean Rooms to write protected query results to the result location, given by the member who can receive results.</p>"
        }
      },
      "documentation":"<p>Contains configurations for protected query results.</p>"
    },
    "MembershipQueryComputePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration member has accepted to pay for query compute costs (<code>TRUE</code>) or has not accepted to pay for query compute costs (<code>FALSE</code>).</p> <p>If the collaboration creator has not specified anyone to pay for query compute costs, then the member who can query is the default payer. </p> <p>An error message is returned for the following reasons: </p> <ul> <li> <p>If you set the value to <code>FALSE</code> but you are responsible to pay for query compute costs. </p> </li> <li> <p>If you set the value to <code>TRUE</code> but you are not responsible to pay for query compute costs. </p> </li> </ul>"
        }
      },
      "documentation":"<p>An object representing the payment responsibilities accepted by the collaboration member for query compute costs.</p>"
    },
    "MembershipQueryLogStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "MembershipStatus":{
      "type":"string",
      "enum":[
        "ACTIVE",
        "REMOVED",
        "COLLABORATION_DELETED"
      ]
    },
    "MembershipSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "collaborationArn",
        "collaborationId",
        "collaborationCreatorAccountId",
        "collaborationCreatorDisplayName",
        "collaborationName",
        "createTime",
        "updateTime",
        "status",
        "memberAbilities",
        "paymentConfiguration"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the membership's collaboration.</p>"
        },
        "arn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the membership's associated collaboration.</p>"
        },
        "collaborationId":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique ID for the membership's collaboration.</p>"
        },
        "collaborationCreatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The identifier of the Amazon Web Services principal that created the collaboration. Currently only supports Amazon Web Services account ID.</p>"
        },
        "collaborationCreatorDisplayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the collaboration creator.</p>"
        },
        "collaborationName":{
          "shape":"CollaborationName",
          "documentation":"<p>The name for the membership's collaboration.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time when the membership was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the membership metadata was last updated.</p>"
        },
        "status":{
          "shape":"MembershipStatus",
          "documentation":"<p>The status of the membership.</p>"
        },
        "memberAbilities":{
          "shape":"MemberAbilities",
          "documentation":"<p>The abilities granted to the collaboration member.</p>"
        },
        "mlMemberAbilities":{
          "shape":"MLMemberAbilities",
          "documentation":"<p>Provides a summary of the ML abilities for the collaboration member.</p>"
        },
        "paymentConfiguration":{
          "shape":"MembershipPaymentConfiguration",
          "documentation":"<p>The payment responsibilities accepted by the collaboration member.</p>"
        }
      },
      "documentation":"<p>The membership object listed by the request.</p>"
    },
    "MembershipSummaryList":{
      "type":"list",
      "member":{"shape":"MembershipSummary"}
    },
    "MembershipSyntheticDataGenerationPaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if this membership is responsible for paying for synthetic data generation.</p>"
        }
      },
      "documentation":"<p>Configuration for payment for synthetic data generation in a membership.</p>"
    },
    "ModelInferencePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration creator has configured the collaboration member to pay for model inference costs (<code>TRUE</code>) or has not configured the collaboration member to pay for model inference costs (<code>FALSE</code>).</p> <p>One or more members can be configured as payer candidates for model inference costs.</p> <p>If the collaboration creator hasn't specified anyone as the member paying for model inference costs, then the member who can query is the default payer.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's model inference payment responsibilities set by the collaboration creator.</p>"
    },
    "ModelTrainingPaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration creator has configured the collaboration member to pay for model training costs (<code>TRUE</code>) or has not configured the collaboration member to pay for model training costs (<code>FALSE</code>).</p> <p>One or more members can be configured as payer candidates for model training costs.</p> <p>If the collaboration creator hasn't specified anyone as the member paying for model training costs, then the member who can query is the default payer.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's model training payment responsibilities set by the collaboration creator.</p>"
    },
    "PaginationToken":{
      "type":"string",
      "max":10240,
      "min":0
    },
    "ParameterMap":{
      "type":"map",
      "key":{"shape":"ParameterName"},
      "value":{"shape":"ParameterValue"},
      "sensitive":true
    },
    "ParameterName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[0-9a-zA-Z_]+"
    },
    "ParameterType":{
      "type":"string",
      "enum":[
        "SMALLINT",
        "INTEGER",
        "BIGINT",
        "DECIMAL",
        "REAL",
        "DOUBLE_PRECISION",
        "BOOLEAN",
        "CHAR",
        "VARCHAR",
        "DATE",
        "TIMESTAMP",
        "TIMESTAMPTZ",
        "TIME",
        "TIMETZ",
        "VARBYTE",
        "BINARY",
        "BYTE",
        "CHARACTER",
        "DOUBLE",
        "FLOAT",
        "INT",
        "LONG",
        "NUMERIC",
        "SHORT",
        "STRING",
        "TIMESTAMP_LTZ",
        "TIMESTAMP_NTZ",
        "TINYINT"
      ]
    },
    "ParameterValue":{
      "type":"string",
      "max":1000,
      "min":0
    },
    "PaymentConfiguration":{
      "type":"structure",
      "required":["queryCompute"],
      "members":{
        "queryCompute":{
          "shape":"QueryComputePaymentConfig",
          "documentation":"<p>The collaboration member's payment responsibilities set by the collaboration creator for query compute costs.</p>"
        },
        "machineLearning":{
          "shape":"MLPaymentConfig",
          "documentation":"<p>An object representing the collaboration member's machine learning payment responsibilities set by the collaboration creator.</p>"
        },
        "jobCompute":{
          "shape":"JobComputePaymentConfig",
          "documentation":"<p> The compute configuration for the job.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's payment responsibilities set by the collaboration creator.</p>"
    },
    "PopulateIdMappingTableInput":{
      "type":"structure",
      "required":[
        "idMappingTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idMappingTableIdentifier":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table that you want to populate.</p>",
          "location":"uri",
          "locationName":"idMappingTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping table that you want to populate.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "jobType":{
          "shape":"JobType",
          "documentation":"<p>The job type of the rule-based ID mapping job. Valid values include:</p> <p> <code>INCREMENTAL</code>: Processes only new or changed data since the last job run. This is the default job type if the ID mapping workflow was created in Entity Resolution with <code>incrementalRunConfig</code> specified.</p> <p> <code>BATCH</code>: Processes all data from the input source, regardless of previous job runs. This is the default job type if the ID mapping workflow was created in Entity Resolution but <code>incrementalRunConfig</code> wasn't specified.</p> <p> <code>DELETE_ONLY</code>: Processes only deletion requests from <code>BatchDeleteUniqueId</code>, which is set in Entity Resolution.</p> <p>For more information about <code>incrementalRunConfig</code> and <code>BatchDeleteUniqueId</code>, see the <a href=\"https://docs.aws.amazon.com/entityresolution/latest/apireference/Welcome.html\">Entity Resolution API Reference</a>.</p>"
        }
      }
    },
    "PopulateIdMappingTableOutput":{
      "type":"structure",
      "required":["idMappingJobId"],
      "members":{
        "idMappingJobId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the mapping job that will populate the ID mapping table.</p>"
        }
      }
    },
    "PopulateIntermediateTableAnalysisType":{
      "type":"string",
      "enum":["QUERY"]
    },
    "PopulateIntermediateTableInput":{
      "type":"structure",
      "required":[
        "intermediateTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table to populate.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "parameters":{
          "shape":"ParameterMap",
          "documentation":"<p>The runtime parameter values that override the defaults in the stored query.</p>"
        },
        "computeConfiguration":{
          "shape":"IntermediateTableComputeConfiguration",
          "documentation":"<p>The compute configuration for the population query execution.</p>"
        },
        "analysisPayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the analysis compute costs.</p>"
        }
      }
    },
    "PopulateIntermediateTableOutput":{
      "type":"structure",
      "required":[
        "analysisId",
        "analysisType",
        "versionId"
      ],
      "members":{
        "analysisId":{
          "shape":"AnalysisIdentifier",
          "documentation":"<p>The identifier for the protected query execution. Use this value with <code>GetProtectedQuery</code> to track the population progress.</p>"
        },
        "analysisType":{
          "shape":"PopulateIntermediateTableAnalysisType",
          "documentation":"<p>The type of analysis performed to populate the intermediate table.</p>"
        },
        "versionId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the version created by this population operation.</p>"
        }
      }
    },
    "PopulationAnalysisConfiguration":{
      "type":"structure",
      "members":{
        "sqlParameters":{
          "shape":"PopulationAnalysisSqlParameters",
          "documentation":"<p>The SQL parameters for the population analysis, including the query string or analysis template ARN.</p>"
        }
      },
      "documentation":"<p>Contains the configuration that defines the analysis used to populate an intermediate table.</p>",
      "union":true
    },
    "PopulationAnalysisSqlParameters":{
      "type":"structure",
      "members":{
        "queryString":{
          "shape":"PopulationAnalysisSqlParametersQueryStringString",
          "documentation":"<p>The SQL query string used to populate the intermediate table. Maximum length of 500,000 characters.</p>"
        },
        "analysisTemplateArn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the analysis template to use for populating the intermediate table.</p>"
        }
      },
      "documentation":"<p>Contains the SQL parameters used to populate an intermediate table.</p>",
      "sensitive":true
    },
    "PopulationAnalysisSqlParametersQueryStringString":{
      "type":"string",
      "max":500000,
      "min":0
    },
    "PreviewPrivacyImpactInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "parameters"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "parameters":{
          "shape":"PreviewPrivacyImpactParametersInput",
          "documentation":"<p>Specifies the desired epsilon and noise parameters to preview.</p>"
        }
      }
    },
    "PreviewPrivacyImpactOutput":{
      "type":"structure",
      "required":["privacyImpact"],
      "members":{
        "privacyImpact":{
          "shape":"PrivacyImpact",
          "documentation":"<p>An estimate of the number of aggregation functions that the member who can query can run given the epsilon and noise parameters. This does not change the privacy budget.</p>"
        }
      }
    },
    "PreviewPrivacyImpactParametersInput":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyPreviewParametersInput",
          "documentation":"<p>An array that specifies the epsilon and noise parameters.</p>"
        }
      },
      "documentation":"<p>Specifies the updated epsilon and noise parameters to preview. The preview allows you to see how the maximum number of each type of aggregation function would change with the new parameters.</p>",
      "union":true
    },
    "PrivacyBudget":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyPrivacyBudget",
          "documentation":"<p>An object that specifies the epsilon parameter and the utility in terms of total aggregations, as well as the remaining aggregations available.</p>"
        },
        "accessBudget":{
          "shape":"AccessBudget",
          "documentation":"<p>Access budget information associated with this privacy budget.</p>"
        }
      },
      "documentation":"<p>The epsilon parameter value and number of each aggregation function that you can perform.</p>",
      "union":true
    },
    "PrivacyBudgetSummary":{
      "type":"structure",
      "required":[
        "id",
        "privacyBudgetTemplateId",
        "privacyBudgetTemplateArn",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "type",
        "createTime",
        "updateTime",
        "budget"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the privacy budget.</p>"
        },
        "privacyBudgetTemplateId":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the privacy budget template.</p>"
        },
        "privacyBudgetTemplateArn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the privacy budget template.</p>"
        },
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the member who created the privacy budget summary.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the collaboration that contains this privacy budget.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that contains this privacy budget.</p>"
        },
        "type":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>Specifies the type of the privacy budget.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the privacy budget was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the privacy budget was updated.</p>"
        },
        "budget":{
          "shape":"PrivacyBudget",
          "documentation":"<p>The provided privacy budget.</p>"
        }
      },
      "documentation":"<p>An array that summaries the specified privacy budget. This summary includes collaboration information, creation information, membership information, and privacy budget information.</p>"
    },
    "PrivacyBudgetSummaryList":{
      "type":"list",
      "member":{"shape":"PrivacyBudgetSummary"}
    },
    "PrivacyBudgetTemplate":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "createTime",
        "updateTime",
        "privacyBudgetType",
        "autoRefresh",
        "parameters"
      ],
      "members":{
        "id":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the privacy budget template.</p>"
        },
        "arn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the privacy budget template.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier for a membership resource.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the member who created the privacy budget template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID of the collaboration that contains this privacy budget template.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that contains this privacy budget template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the privacy budget template was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the privacy budget template was updated.</p>"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>Specifies the type of the privacy budget template.</p>"
        },
        "autoRefresh":{
          "shape":"PrivacyBudgetTemplateAutoRefresh",
          "documentation":"<p>How often the privacy budget refreshes.</p> <important> <p>If you plan to regularly bring new data into the collaboration, use <code>CALENDAR_MONTH</code> to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.</p> </important>"
        },
        "parameters":{
          "shape":"PrivacyBudgetTemplateParametersOutput",
          "documentation":"<p>Specifies the epsilon and noise parameters for the privacy budget template.</p>"
        }
      },
      "documentation":"<p>An object that defines the privacy budget template.</p>"
    },
    "PrivacyBudgetTemplateArn":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:privacybudgettemplate/[\\d\\w-]+"
    },
    "PrivacyBudgetTemplateAutoRefresh":{
      "type":"string",
      "enum":[
        "CALENDAR_MONTH",
        "NONE"
      ]
    },
    "PrivacyBudgetTemplateIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "PrivacyBudgetTemplateParametersInput":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyTemplateParametersInput",
          "documentation":"<p>An object that specifies the epsilon and noise parameters.</p>"
        },
        "accessBudget":{
          "shape":"AccessBudgetsPrivacyTemplateParametersInput",
          "documentation":"<p>Access budget configuration for the privacy budget template input, enabling integration with access budget functionality.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameters that you want to use for the privacy budget template.</p>",
      "union":true
    },
    "PrivacyBudgetTemplateParametersOutput":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyTemplateParametersOutput",
          "documentation":"<p>The epsilon and noise parameters.</p>"
        },
        "accessBudget":{
          "shape":"AccessBudgetsPrivacyTemplateParametersOutput",
          "documentation":"<p>Access budget configuration returned from the privacy budget template, containing the configured access budget settings.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameters that were used in the privacy budget template.</p>",
      "union":true
    },
    "PrivacyBudgetTemplateSummary":{
      "type":"structure",
      "required":[
        "id",
        "arn",
        "membershipId",
        "membershipArn",
        "collaborationId",
        "collaborationArn",
        "privacyBudgetType",
        "createTime",
        "updateTime"
      ],
      "members":{
        "id":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>The unique identifier of the privacy budget template.</p>"
        },
        "arn":{
          "shape":"PrivacyBudgetTemplateArn",
          "documentation":"<p>The ARN of the privacy budget template.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier for a membership resource.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the member who created the privacy budget template.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID of the collaboration that contains this privacy budget template.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The ARN of the collaboration that contains this privacy budget template.</p>"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>The type of the privacy budget template.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the privacy budget template was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the privacy budget template was updated.</p>"
        }
      },
      "documentation":"<p>A summary of the privacy budget template. The summary includes membership information, collaboration information, and creation information.</p>"
    },
    "PrivacyBudgetTemplateSummaryList":{
      "type":"list",
      "member":{"shape":"PrivacyBudgetTemplateSummary"}
    },
    "PrivacyBudgetTemplateUpdateParameters":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyTemplateUpdateParameters",
          "documentation":"<p>An object that specifies the new values for the epsilon and noise parameters.</p>"
        },
        "accessBudget":{
          "shape":"AccessBudgetsPrivacyTemplateUpdateParameters",
          "documentation":"<p> The new access budget configuration that completely replaces the existing access budget settings in the privacy budget template.</p>"
        }
      },
      "documentation":"<p>The epsilon and noise parameters that you want to update in the privacy budget template.</p>",
      "union":true
    },
    "PrivacyBudgetType":{
      "type":"string",
      "enum":[
        "DIFFERENTIAL_PRIVACY",
        "ACCESS_BUDGET"
      ]
    },
    "PrivacyImpact":{
      "type":"structure",
      "members":{
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyPrivacyImpact",
          "documentation":"<p>An object that lists the number and type of aggregation functions you can perform.</p>"
        }
      },
      "documentation":"<p>Provides an estimate of the number of aggregation functions that the member who can query can run given the epsilon and noise parameters.</p>",
      "union":true
    },
    "ProtectedJob":{
      "type":"structure",
      "required":[
        "id",
        "membershipId",
        "membershipArn",
        "createTime",
        "status"
      ],
      "members":{
        "id":{
          "shape":"ProtectedJobIdentifier",
          "documentation":"<p>The identifier for a protected job instance.</p>"
        },
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>he identifier for the membership.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The ARN of the membership.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p> The creation time of the protected job.</p>"
        },
        "jobParameters":{
          "shape":"ProtectedJobParameters",
          "documentation":"<p> The job parameters for the protected job.</p>"
        },
        "status":{
          "shape":"ProtectedJobStatus",
          "documentation":"<p> The status of the protected job.</p>"
        },
        "resultConfiguration":{
          "shape":"ProtectedJobResultConfigurationOutput",
          "documentation":"<p>Contains any details needed to write the job results.</p>"
        },
        "statistics":{
          "shape":"ProtectedJobStatistics",
          "documentation":"<p> The statistics of the protected job.</p>"
        },
        "result":{
          "shape":"ProtectedJobResult",
          "documentation":"<p> The result of the protected job.</p>"
        },
        "error":{
          "shape":"ProtectedJobError",
          "documentation":"<p> The error from the protected job.</p>"
        },
        "computeConfiguration":{
          "shape":"ProtectedJobComputeConfiguration",
          "documentation":"<p>The compute configuration for the protected job.</p>"
        },
        "jobComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the job compute costs.</p>"
        }
      },
      "documentation":"<p>The parameters for an Clean Rooms protected job.</p>"
    },
    "ProtectedJobAnalysisType":{
      "type":"string",
      "enum":["DIRECT_ANALYSIS"]
    },
    "ProtectedJobComputeConfiguration":{
      "type":"structure",
      "members":{
        "worker":{
          "shape":"ProtectedJobWorkerComputeConfiguration",
          "documentation":"<p>The worker configuration for the compute environment.</p>"
        }
      },
      "documentation":"<p>The configuration of the compute resources for a PySpark job.</p>",
      "union":true
    },
    "ProtectedJobConfigurationDetails":{
      "type":"structure",
      "members":{
        "directAnalysisConfigurationDetails":{
          "shape":"ProtectedJobDirectAnalysisConfigurationDetails",
          "documentation":"<p>The details needed to configure the direct analysis.</p>"
        }
      },
      "documentation":"<p>The protected job configuration details.</p>",
      "union":true
    },
    "ProtectedJobDirectAnalysisConfigurationDetails":{
      "type":"structure",
      "members":{
        "receiverAccountIds":{
          "shape":"ProtectedJobReceiverAccountIds",
          "documentation":"<p> The receiver account IDs.</p>"
        }
      },
      "documentation":"<p>The protected job direct analysis configuration details.</p>"
    },
    "ProtectedJobError":{
      "type":"structure",
      "required":[
        "message",
        "code"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p> The message for the protected job error.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p> The error code for the protected job.</p>"
        }
      },
      "documentation":"<p>The protected job error.</p>"
    },
    "ProtectedJobIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ProtectedJobMemberOutputConfigurationInput":{
      "type":"structure",
      "required":["accountId"],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p> The account ID.</p>"
        }
      },
      "documentation":"<p> The protected job member output configuration input.</p>"
    },
    "ProtectedJobMemberOutputConfigurationOutput":{
      "type":"structure",
      "required":["accountId"],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p> The account ID.</p>"
        }
      },
      "documentation":"<p> The protected job member output configuration output.</p>"
    },
    "ProtectedJobMemberOutputList":{
      "type":"list",
      "member":{"shape":"ProtectedJobSingleMemberOutput"}
    },
    "ProtectedJobOutput":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"ProtectedJobS3Output",
          "documentation":"<p>If present, the output for a protected job with an `S3` output type.</p>"
        },
        "memberList":{
          "shape":"ProtectedJobMemberOutputList",
          "documentation":"<p>The list of member Amazon Web Services account(s) that received the results of the job. </p>"
        }
      },
      "documentation":"<p>Contains details about the protected job output.</p>",
      "union":true
    },
    "ProtectedJobOutputConfigurationInput":{
      "type":"structure",
      "members":{
        "member":{
          "shape":"ProtectedJobMemberOutputConfigurationInput",
          "documentation":"<p> The member of the protected job output configuration input.</p>"
        }
      },
      "documentation":"<p> The protected job output configuration input.</p>",
      "union":true
    },
    "ProtectedJobOutputConfigurationOutput":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"ProtectedJobS3OutputConfigurationOutput",
          "documentation":"<p>If present, the output for a protected job with an `S3` output type.</p>"
        },
        "member":{
          "shape":"ProtectedJobMemberOutputConfigurationOutput",
          "documentation":"<p> The member output configuration for a protected job.</p>"
        }
      },
      "documentation":"<p> The protected job output configuration output.</p>",
      "union":true
    },
    "ProtectedJobParameters":{
      "type":"structure",
      "required":["analysisTemplateArn"],
      "members":{
        "analysisTemplateArn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p> The ARN of the analysis template.</p>"
        },
        "parameters":{
          "shape":"JobParameterMap",
          "documentation":"<p>Runtime configuration values passed to the PySpark analysis script. Parameter names and types must match those defined in the analysis template.</p>"
        }
      },
      "documentation":"<p>The parameters for the protected job.</p>"
    },
    "ProtectedJobReceiverAccountIds":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "ProtectedJobReceiverConfiguration":{
      "type":"structure",
      "required":["analysisType"],
      "members":{
        "analysisType":{
          "shape":"ProtectedJobAnalysisType",
          "documentation":"<p> The analysis type for the protected job receiver configuration.</p>"
        },
        "configurationDetails":{
          "shape":"ProtectedJobConfigurationDetails",
          "documentation":"<p> The configuration details for the protected job receiver.</p>"
        }
      },
      "documentation":"<p>The protected job receiver configuration.</p>"
    },
    "ProtectedJobReceiverConfigurations":{
      "type":"list",
      "member":{"shape":"ProtectedJobReceiverConfiguration"}
    },
    "ProtectedJobResult":{
      "type":"structure",
      "required":["output"],
      "members":{
        "output":{
          "shape":"ProtectedJobOutput",
          "documentation":"<p> The output of the protected job.</p>"
        }
      },
      "documentation":"<p>Details about the job results.</p>"
    },
    "ProtectedJobResultConfigurationInput":{
      "type":"structure",
      "required":["outputConfiguration"],
      "members":{
        "outputConfiguration":{
          "shape":"ProtectedJobOutputConfigurationInput",
          "documentation":"<p> The output configuration for a protected job result.</p>"
        }
      },
      "documentation":"<p>The protected job result configuration input.</p>"
    },
    "ProtectedJobResultConfigurationOutput":{
      "type":"structure",
      "required":["outputConfiguration"],
      "members":{
        "outputConfiguration":{
          "shape":"ProtectedJobOutputConfigurationOutput",
          "documentation":"<p>The output configuration.</p>"
        }
      },
      "documentation":"<p>The output configuration for a protected job result.</p>"
    },
    "ProtectedJobS3Output":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"String",
          "documentation":"<p> The S3 location for the protected job output.</p>"
        }
      },
      "documentation":"<p>Contains output information for protected jobs with an S3 output type.</p>"
    },
    "ProtectedJobS3OutputConfigurationInput":{
      "type":"structure",
      "required":["bucket"],
      "members":{
        "bucket":{
          "shape":"ProtectedJobS3OutputConfigurationInputBucketString",
          "documentation":"<p> The S3 bucket for job output.</p>"
        },
        "keyPrefix":{
          "shape":"KeyPrefix",
          "documentation":"<p>The S3 prefix to unload the protected job results.</p>"
        }
      },
      "documentation":"<p>Contains input information for protected jobs with an S3 output type.</p>"
    },
    "ProtectedJobS3OutputConfigurationInputBucketString":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":".*(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$).*"
    },
    "ProtectedJobS3OutputConfigurationOutput":{
      "type":"structure",
      "required":["bucket"],
      "members":{
        "bucket":{
          "shape":"ProtectedJobS3OutputConfigurationOutputBucketString",
          "documentation":"<p> The S3 bucket for job output.</p>"
        },
        "keyPrefix":{
          "shape":"KeyPrefix",
          "documentation":"<p>The S3 prefix to unload the protected job results.</p>"
        }
      },
      "documentation":"<p> The output configuration for a protected job's S3 output.</p>"
    },
    "ProtectedJobS3OutputConfigurationOutputBucketString":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":".*(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$).*"
    },
    "ProtectedJobSingleMemberOutput":{
      "type":"structure",
      "required":["accountId"],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member in the collaboration who can receive results from analyses.</p>"
        }
      },
      "documentation":"<p>Details about the member who received the job result.</p>"
    },
    "ProtectedJobStatistics":{
      "type":"structure",
      "members":{
        "totalDurationInMillis":{
          "shape":"Long",
          "documentation":"<p>The duration of the protected job, from creation until job completion, in milliseconds.</p>"
        },
        "billedResourceUtilization":{
          "shape":"BilledJobResourceUtilization",
          "documentation":"<p> The billed resource utilization for the protected job.</p>"
        }
      },
      "documentation":"<p>Contains statistics about the execution of the protected job.</p>"
    },
    "ProtectedJobStatus":{
      "type":"string",
      "enum":[
        "SUBMITTED",
        "STARTED",
        "CANCELLED",
        "CANCELLING",
        "FAILED",
        "SUCCESS"
      ]
    },
    "ProtectedJobSummary":{
      "type":"structure",
      "required":[
        "id",
        "membershipId",
        "membershipArn",
        "createTime",
        "status",
        "receiverConfigurations"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p> The ID of the protected job.</p>"
        },
        "membershipId":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique ID for the membership that initiated the protected job.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership that initiated the protected job.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the protected job was created.</p>"
        },
        "status":{
          "shape":"ProtectedJobStatus",
          "documentation":"<p>The status of the protected job.</p>"
        },
        "receiverConfigurations":{
          "shape":"ProtectedJobReceiverConfigurations",
          "documentation":"<p> The receiver configurations for the protected job.</p>"
        },
        "jobComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the job compute costs.</p>"
        }
      },
      "documentation":"<p>The protected job summary for the objects listed by the request.</p>"
    },
    "ProtectedJobSummaryList":{
      "type":"list",
      "member":{"shape":"ProtectedJobSummary"}
    },
    "ProtectedJobType":{
      "type":"string",
      "enum":["PYSPARK"]
    },
    "ProtectedJobWorkerComputeConfiguration":{
      "type":"structure",
      "required":[
        "type",
        "number"
      ],
      "members":{
        "type":{
          "shape":"ProtectedJobWorkerComputeType",
          "documentation":"<p>The worker compute configuration type.</p>"
        },
        "number":{
          "shape":"ProtectedJobWorkerComputeConfigurationNumberInteger",
          "documentation":"<p>The number of workers for a PySpark job.</p>"
        },
        "properties":{
          "shape":"WorkerComputeConfigurationProperties",
          "documentation":"<p>The configuration properties for the worker compute environment. These properties allow you to customize the compute settings for your Clean Rooms workloads.</p>"
        }
      },
      "documentation":"<p>The configuration of the compute resources for a PySpark job.</p>"
    },
    "ProtectedJobWorkerComputeConfigurationNumberInteger":{
      "type":"integer",
      "box":true,
      "max":1024,
      "min":4
    },
    "ProtectedJobWorkerComputeType":{
      "type":"string",
      "enum":[
        "CR.1X",
        "CR.4X"
      ]
    },
    "ProtectedQuery":{
      "type":"structure",
      "required":[
        "id",
        "membershipId",
        "membershipArn",
        "createTime",
        "status"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The identifier for a protected query instance.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The identifier for the membership.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The ARN of the membership.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the protected query was created.</p>"
        },
        "sqlParameters":{
          "shape":"ProtectedQuerySQLParameters",
          "documentation":"<p>The protected query SQL parameters.</p>"
        },
        "status":{
          "shape":"ProtectedQueryStatus",
          "documentation":"<p>The status of the query.</p>"
        },
        "resultConfiguration":{
          "shape":"ProtectedQueryResultConfiguration",
          "documentation":"<p>Contains any details needed to write the query results.</p>"
        },
        "statistics":{
          "shape":"ProtectedQueryStatistics",
          "documentation":"<p>Statistics about protected query execution.</p>"
        },
        "result":{
          "shape":"ProtectedQueryResult",
          "documentation":"<p>The result of the protected query.</p>"
        },
        "error":{
          "shape":"ProtectedQueryError",
          "documentation":"<p>An error thrown by the protected query.</p>"
        },
        "differentialPrivacy":{
          "shape":"DifferentialPrivacyParameters",
          "documentation":"<p>The sensitivity parameters of the differential privacy results of the protected query.</p>"
        },
        "computeConfiguration":{
          "shape":"ComputeConfiguration",
          "documentation":"<p> The compute configuration for the protected query.</p>"
        },
        "queryComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the query compute costs.</p>"
        }
      },
      "documentation":"<p>The parameters for an Clean Rooms protected query.</p>"
    },
    "ProtectedQueryDistributeOutput":{
      "type":"structure",
      "members":{
        "s3":{"shape":"ProtectedQueryS3Output"},
        "memberList":{
          "shape":"ProtectedQueryMemberOutputList",
          "documentation":"<p> Contains the output results for each member location specified in the distribute output configuration. Each entry provides details about the result distribution to a specific collaboration member. </p>"
        }
      },
      "documentation":"<p> Contains the output information for a protected query with a distribute output configuration.</p> <p> This output type allows query results to be distributed to multiple receivers, including S3 and collaboration members. It is only available for queries using the Spark analytics engine.</p>"
    },
    "ProtectedQueryDistributeOutputConfiguration":{
      "type":"structure",
      "required":["locations"],
      "members":{
        "locations":{
          "shape":"ProtectedQueryDistributeOutputConfigurationLocationsList",
          "documentation":"<p> A list of locations where you want to distribute the protected query results. Each location must specify either an S3 destination or a collaboration member destination.</p> <important> <p>You can't specify more than one S3 location.</p> <p>You can't specify the query runner's account as a member location.</p> <p>You must include either an S3 or member output configuration for each location, but not both.</p> </important>"
        }
      },
      "documentation":"<p> Specifies the configuration for distributing protected query results to multiple receivers, including S3 and collaboration members.</p>"
    },
    "ProtectedQueryDistributeOutputConfigurationLocation":{
      "type":"structure",
      "members":{
        "s3":{"shape":"ProtectedQueryS3OutputConfiguration"},
        "member":{"shape":"ProtectedQueryMemberOutputConfiguration"}
      },
      "documentation":"<p> Specifies where you'll distribute the results of your protected query. You must configure either an S3 destination or a collaboration member destination.</p>",
      "union":true
    },
    "ProtectedQueryDistributeOutputConfigurationLocationsList":{
      "type":"list",
      "member":{"shape":"ProtectedQueryDistributeOutputConfigurationLocation"},
      "min":1
    },
    "ProtectedQueryError":{
      "type":"structure",
      "required":[
        "message",
        "code"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A description of why the query failed.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>An error code for the error.</p>"
        }
      },
      "documentation":"<p>Details of errors thrown by the protected query.</p>"
    },
    "ProtectedQueryIdentifier":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ProtectedQueryMemberOutputConfiguration":{
      "type":"structure",
      "required":["accountId"],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique identifier for the account.</p>"
        }
      },
      "documentation":"<p> Contains configuration details for the protected query member output.</p>"
    },
    "ProtectedQueryMemberOutputList":{
      "type":"list",
      "member":{"shape":"ProtectedQuerySingleMemberOutput"}
    },
    "ProtectedQueryOutput":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"ProtectedQueryS3Output",
          "documentation":"<p>If present, the output for a protected query with an <code>S3</code> output type.</p>"
        },
        "memberList":{
          "shape":"ProtectedQueryMemberOutputList",
          "documentation":"<p>The list of member Amazon Web Services account(s) that received the results of the query. </p>"
        },
        "distribute":{
          "shape":"ProtectedQueryDistributeOutput",
          "documentation":"<p>Contains output information for protected queries that use a <code>distribute</code> output type. This output type lets you send query results to multiple locations - either to S3 or to collaboration members. </p> <note> <p> You can only use the <code>distribute</code> output type with the Spark analytics engine. </p> </note>"
        }
      },
      "documentation":"<p>Contains details about the protected query output.</p>",
      "union":true
    },
    "ProtectedQueryOutputConfiguration":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"ProtectedQueryS3OutputConfiguration",
          "documentation":"<p>Required configuration for a protected query with an <code>s3</code> output type.</p>"
        },
        "member":{
          "shape":"ProtectedQueryMemberOutputConfiguration",
          "documentation":"<p> Required configuration for a protected query with a <code>member</code> output type.</p>"
        },
        "distribute":{
          "shape":"ProtectedQueryDistributeOutputConfiguration",
          "documentation":"<p> Required configuration for a protected query with a <code>distribute</code> output type.</p>"
        },
        "intermediateTable":{
          "shape":"IntermediateTableOutputConfiguration",
          "documentation":"<p>The intermediate table output configuration, present when the protected query was triggered by a populate operation.</p>"
        }
      },
      "documentation":"<p>Contains configuration details for protected query output.</p>",
      "union":true
    },
    "ProtectedQueryResult":{
      "type":"structure",
      "required":["output"],
      "members":{
        "output":{
          "shape":"ProtectedQueryOutput",
          "documentation":"<p>The output of the protected query.</p>"
        }
      },
      "documentation":"<p>Details about the query results.</p>"
    },
    "ProtectedQueryResultConfiguration":{
      "type":"structure",
      "required":["outputConfiguration"],
      "members":{
        "outputConfiguration":{
          "shape":"ProtectedQueryOutputConfiguration",
          "documentation":"<p>Configuration for protected query results.</p>"
        }
      },
      "documentation":"<p>Contains configurations for protected query results.</p>"
    },
    "ProtectedQueryS3Output":{
      "type":"structure",
      "required":["location"],
      "members":{
        "location":{
          "shape":"String",
          "documentation":"<p>The S3 location of the result.</p>"
        }
      },
      "documentation":"<p>Contains output information for protected queries with an S3 output type.</p>"
    },
    "ProtectedQueryS3OutputConfiguration":{
      "type":"structure",
      "required":[
        "resultFormat",
        "bucket"
      ],
      "members":{
        "resultFormat":{
          "shape":"ResultFormat",
          "documentation":"<p>Intended file format of the result.</p>"
        },
        "bucket":{
          "shape":"ProtectedQueryS3OutputConfigurationBucketString",
          "documentation":"<p>The S3 bucket to unload the protected query results.</p>"
        },
        "keyPrefix":{
          "shape":"KeyPrefix",
          "documentation":"<p>The S3 prefix to unload the protected query results.</p>"
        },
        "singleFileOutput":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether files should be output as a single file (<code>TRUE</code>) or output as multiple files (<code>FALSE</code>). This parameter is only supported for analyses with the Spark analytics engine.</p>"
        }
      },
      "documentation":"<p>Contains the configuration to write the query results to S3.</p>"
    },
    "ProtectedQueryS3OutputConfigurationBucketString":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":".*(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$).*"
    },
    "ProtectedQuerySQLParameters":{
      "type":"structure",
      "members":{
        "queryString":{
          "shape":"ProtectedQuerySQLParametersQueryStringString",
          "documentation":"<p>The query string to be submitted.</p>"
        },
        "analysisTemplateArn":{
          "shape":"AnalysisTemplateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the analysis template within a collaboration.</p>"
        },
        "parameters":{
          "shape":"ParameterMap",
          "documentation":"<p>The protected query SQL parameters.</p>"
        }
      },
      "documentation":"<p>The parameters for the SQL type Protected Query.</p>",
      "sensitive":true
    },
    "ProtectedQuerySQLParametersQueryStringString":{
      "type":"string",
      "max":500000,
      "min":0
    },
    "ProtectedQuerySingleMemberOutput":{
      "type":"structure",
      "required":["accountId"],
      "members":{
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The Amazon Web Services account ID of the member in the collaboration who can receive results for the query.</p>"
        }
      },
      "documentation":"<p>Details about the member who received the query result.</p>"
    },
    "ProtectedQueryStatistics":{
      "type":"structure",
      "members":{
        "totalDurationInMillis":{
          "shape":"Long",
          "documentation":"<p>The duration of the protected query, from creation until query completion, in milliseconds.</p>"
        },
        "billedResourceUtilization":{
          "shape":"BilledResourceUtilization",
          "documentation":"<p> The billed resource utilization.</p>"
        }
      },
      "documentation":"<p>Contains statistics about the execution of the protected query.</p>"
    },
    "ProtectedQueryStatus":{
      "type":"string",
      "enum":[
        "SUBMITTED",
        "STARTED",
        "CANCELLED",
        "CANCELLING",
        "FAILED",
        "SUCCESS",
        "TIMED_OUT"
      ]
    },
    "ProtectedQuerySummary":{
      "type":"structure",
      "required":[
        "id",
        "membershipId",
        "membershipArn",
        "createTime",
        "status",
        "receiverConfigurations"
      ],
      "members":{
        "id":{
          "shape":"UUID",
          "documentation":"<p>The unique ID of the protected query.</p>"
        },
        "membershipId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the membership that initiated the protected query.</p>"
        },
        "membershipArn":{
          "shape":"MembershipArn",
          "documentation":"<p>The unique ARN for the membership that initiated the protected query.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the protected query was created.</p>"
        },
        "status":{
          "shape":"ProtectedQueryStatus",
          "documentation":"<p>The status of the protected query.</p>"
        },
        "receiverConfigurations":{
          "shape":"ReceiverConfigurationsList",
          "documentation":"<p> The receiver configuration.</p>"
        },
        "queryComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the query compute costs.</p>"
        },
        "intermediateTableConfiguration":{
          "shape":"IntermediateTableOutputConfiguration",
          "documentation":"<p>The intermediate table configuration, present when the protected query was triggered by a populate operation.</p>"
        }
      },
      "documentation":"<p>The protected query summary for the objects listed by the request.</p>"
    },
    "ProtectedQuerySummaryList":{
      "type":"list",
      "member":{"shape":"ProtectedQuerySummary"}
    },
    "ProtectedQueryType":{
      "type":"string",
      "enum":["SQL"]
    },
    "QueryComputePaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the collaboration creator has configured the collaboration member to pay for query compute costs (<code>TRUE</code>) or has not configured the collaboration member to pay for query compute costs (<code>FALSE</code>).</p> <p>One or more members can be configured as payer candidates for query compute costs.</p> <p>If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.</p>"
        }
      },
      "documentation":"<p>An object representing the collaboration member's payment responsibilities set by the collaboration creator for query compute costs.</p>"
    },
    "QueryConstraint":{
      "type":"structure",
      "members":{
        "requireOverlap":{
          "shape":"QueryConstraintRequireOverlap",
          "documentation":"<p>An array of column names that specifies which columns are required in the JOIN statement.</p>"
        }
      },
      "documentation":"<p>Provides any necessary query constraint information.</p>",
      "union":true
    },
    "QueryConstraintList":{
      "type":"list",
      "member":{"shape":"QueryConstraint"},
      "max":1,
      "min":0
    },
    "QueryConstraintRequireOverlap":{
      "type":"structure",
      "members":{
        "columns":{
          "shape":"AnalysisRuleColumnList",
          "documentation":"<p>The columns that are required to overlap.</p>"
        }
      },
      "documentation":"<p>Provides the name of the columns that are required to overlap.</p>"
    },
    "QueryTables":{
      "type":"list",
      "member":{"shape":"TableAlias"}
    },
    "ReceiverAccountIds":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "ReceiverConfiguration":{
      "type":"structure",
      "required":["analysisType"],
      "members":{
        "analysisType":{
          "shape":"AnalysisType",
          "documentation":"<p> The type of analysis for the protected query. The results of the query can be analyzed directly (<code>DIRECT_ANALYSIS</code>) or used as input into additional analyses (<code>ADDITIONAL_ANALYSIS</code>), such as a query that is a seed for a lookalike ML model.</p>"
        },
        "configurationDetails":{
          "shape":"ConfigurationDetails",
          "documentation":"<p> The configuration details of the receiver configuration.</p>"
        }
      },
      "documentation":"<p> The receiver configuration for a protected query.</p>"
    },
    "ReceiverConfigurationsList":{
      "type":"list",
      "member":{"shape":"ReceiverConfiguration"}
    },
    "RemainingBudget":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "ResourceAlias":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?"
    },
    "ResourceDescription":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The Id of the missing resource.</p>"
        },
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The type of the missing resource.</p>"
        }
      },
      "documentation":"<p>Request references a resource which does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceStatus":{
      "type":"string",
      "enum":[
        "CREATED",
        "POPULATE_STARTED",
        "POPULATE_SUCCESS",
        "POPULATE_FAILED",
        "DISALLOWED_BY_DATA_PROVIDER",
        "BASE_TABLE_REMOVED",
        "RETENTION_PERIOD_EXPIRED"
      ]
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "CONFIGURED_TABLE",
        "COLLABORATION",
        "MEMBERSHIP",
        "CONFIGURED_TABLE_ASSOCIATION"
      ]
    },
    "ResultFormat":{
      "type":"string",
      "documentation":"<p>File format of the returned data.</p>",
      "enum":[
        "CSV",
        "PARQUET"
      ]
    },
    "RoleArn":{
      "type":"string",
      "max":512,
      "min":32,
      "pattern":"arn:aws:iam::[\\w]+:role/[\\w+=./@-]+"
    },
    "S3Location":{
      "type":"structure",
      "required":[
        "bucket",
        "key"
      ],
      "members":{
        "bucket":{
          "shape":"S3LocationBucketString",
          "documentation":"<p> The bucket name.</p>"
        },
        "key":{
          "shape":"S3LocationKeyString",
          "documentation":"<p> The object key.</p>"
        }
      },
      "documentation":"<p>The S3 location.</p>"
    },
    "S3LocationBucketString":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":".*(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$).*"
    },
    "S3LocationKeyString":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[a-zA-Z0-9!_.*'()-/]+"
    },
    "ScalarFunctions":{
      "type":"string",
      "enum":[
        "ABS",
        "CAST",
        "CEILING",
        "COALESCE",
        "CONVERT",
        "CURRENT_DATE",
        "DATEADD",
        "EXTRACT",
        "FLOOR",
        "GETDATE",
        "LN",
        "LOG",
        "LOWER",
        "ROUND",
        "RTRIM",
        "SQRT",
        "SUBSTRING",
        "TO_CHAR",
        "TO_DATE",
        "TO_NUMBER",
        "TO_TIMESTAMP",
        "TRIM",
        "TRUNC",
        "UPPER"
      ]
    },
    "ScalarFunctionsList":{
      "type":"list",
      "member":{"shape":"ScalarFunctions"}
    },
    "Schema":{
      "type":"structure",
      "required":[
        "columns",
        "partitionKeys",
        "analysisRuleTypes",
        "creatorAccountId",
        "name",
        "collaborationId",
        "collaborationArn",
        "description",
        "createTime",
        "updateTime",
        "type",
        "schemaStatusDetails"
      ],
      "members":{
        "columns":{
          "shape":"ColumnList",
          "documentation":"<p>The columns for the relation that this schema represents.</p>"
        },
        "partitionKeys":{
          "shape":"ColumnList",
          "documentation":"<p>The partition keys for the dataset underlying this schema.</p>"
        },
        "analysisRuleTypes":{
          "shape":"AnalysisRuleTypeList",
          "documentation":"<p>The analysis rule types that are associated with the schema. Currently, only one entry is present.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p>The analysis method for the schema. </p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The selected analysis methods for the schema.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique account ID for the Amazon Web Services account that owns the schema.</p>"
        },
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>A name for the schema. The schema relation is referred to by this name when queried by a protected query.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the collaboration that the schema belongs to.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique Amazon Resource Name (ARN) for the collaboration that the schema belongs to.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A description for the schema.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time at which the schema was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The most recent time at which the schema was updated.</p>"
        },
        "type":{
          "shape":"SchemaType",
          "documentation":"<p>The type of schema.</p>"
        },
        "schemaStatusDetails":{
          "shape":"SchemaStatusDetailList",
          "documentation":"<p>Details about the status of the schema. Currently, only one entry is present.</p>"
        },
        "resourceArn":{
          "shape":"SchemaResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the schema resource.</p>"
        },
        "schemaTypeProperties":{
          "shape":"SchemaTypeProperties",
          "documentation":"<p>The schema type properties.</p>"
        }
      },
      "documentation":"<p>A schema is a relation within a collaboration.</p>"
    },
    "SchemaAnalysisRuleList":{
      "type":"list",
      "member":{"shape":"AnalysisRule"},
      "max":25,
      "min":0
    },
    "SchemaAnalysisRuleRequest":{
      "type":"structure",
      "required":[
        "name",
        "type"
      ],
      "members":{
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name of the analysis rule schema that you are requesting.</p>"
        },
        "type":{
          "shape":"AnalysisRuleType",
          "documentation":"<p>The type of analysis rule schema that you are requesting.</p>"
        }
      },
      "documentation":"<p>Defines the information that's necessary to retrieve an analysis rule schema. Schema analysis rules are uniquely identiﬁed by a combination of the schema name and the analysis rule type for a given collaboration.</p>"
    },
    "SchemaAnalysisRuleRequestList":{
      "type":"list",
      "member":{"shape":"SchemaAnalysisRuleRequest"},
      "max":25,
      "min":1
    },
    "SchemaConfiguration":{
      "type":"string",
      "enum":["DIFFERENTIAL_PRIVACY"]
    },
    "SchemaConfigurationList":{
      "type":"list",
      "member":{"shape":"SchemaConfiguration"}
    },
    "SchemaList":{
      "type":"list",
      "member":{"shape":"Schema"},
      "max":25,
      "min":0
    },
    "SchemaResourceArn":{
      "type":"string",
      "max":200,
      "min":0,
      "pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership\\/[\\d\\w-]+\\/(configuredtableassociation|idmappingtable)\\/[\\d\\w-]+"
    },
    "SchemaStatus":{
      "type":"string",
      "enum":[
        "READY",
        "NOT_READY"
      ]
    },
    "SchemaStatusDetail":{
      "type":"structure",
      "required":[
        "status",
        "analysisType"
      ],
      "members":{
        "status":{
          "shape":"SchemaStatus",
          "documentation":"<p>The status of the schema, indicating if it is ready to query.</p>"
        },
        "reasons":{
          "shape":"SchemaStatusReasonList",
          "documentation":"<p>The reasons why the schema status is set to its current state.</p>"
        },
        "analysisRuleType":{
          "shape":"AnalysisRuleType",
          "documentation":"<p>The analysis rule type for which the schema status has been evaluated.</p>"
        },
        "configurations":{
          "shape":"SchemaConfigurationList",
          "documentation":"<p>The configuration details of the schema analysis rule for the given type.</p>"
        },
        "analysisType":{
          "shape":"AnalysisType",
          "documentation":"<p>The type of analysis that can be performed on the schema.</p> <p>A schema can have an <code>analysisType</code> of <code>DIRECT_ANALYSIS</code>, <code>ADDITIONAL_ANALYSIS_FOR_AUDIENCE_GENERATION</code>, or both.</p>"
        }
      },
      "documentation":"<p>Information about the schema status.</p> <p>A status of <code>READY</code> means that based on the schema analysis rule, queries of the given analysis rule type are properly configured to run queries on this schema.</p>"
    },
    "SchemaStatusDetailList":{
      "type":"list",
      "member":{"shape":"SchemaStatusDetail"}
    },
    "SchemaStatusReason":{
      "type":"structure",
      "required":[
        "code",
        "message"
      ],
      "members":{
        "code":{
          "shape":"SchemaStatusReasonCode",
          "documentation":"<p>The schema status reason code.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>An explanation of the schema status reason code.</p>"
        }
      },
      "documentation":"<p>A reason why the schema status is set to its current value.</p>"
    },
    "SchemaStatusReasonCode":{
      "type":"string",
      "enum":[
        "ANALYSIS_RULE_MISSING",
        "ANALYSIS_TEMPLATES_NOT_CONFIGURED",
        "ANALYSIS_PROVIDERS_NOT_CONFIGURED",
        "DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED",
        "ID_MAPPING_TABLE_NOT_POPULATED",
        "COLLABORATION_ANALYSIS_RULE_NOT_CONFIGURED",
        "ADDITIONAL_ANALYSES_NOT_CONFIGURED",
        "RESULT_RECEIVERS_NOT_CONFIGURED",
        "ADDITIONAL_ANALYSES_NOT_ALLOWED",
        "RESULT_RECEIVERS_NOT_ALLOWED",
        "ANALYSIS_RULE_TYPES_NOT_COMPATIBLE",
        "INTERMEDIATE_TABLE_NOT_POPULATED",
        "INTERMEDIATE_TABLE_ANALYSIS_RULE_MISSING",
        "INTERMEDIATE_TABLE_BASE_TABLE_REMOVED",
        "INTERMEDIATE_TABLE_INHERITED_CONSTRAINTS_VIOLATED",
        "INTERMEDIATE_TABLE_DISALLOWED_BY_DATA_PROVIDER",
        "INTERMEDIATE_TABLE_RETENTION_PERIOD_EXPIRED"
      ]
    },
    "SchemaStatusReasonList":{
      "type":"list",
      "member":{"shape":"SchemaStatusReason"}
    },
    "SchemaSummary":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "creatorAccountId",
        "createTime",
        "updateTime",
        "collaborationId",
        "collaborationArn",
        "analysisRuleTypes"
      ],
      "members":{
        "name":{
          "shape":"TableAlias",
          "documentation":"<p>The name for the schema object.</p>"
        },
        "type":{
          "shape":"SchemaType",
          "documentation":"<p>The type of schema object.</p>"
        },
        "creatorAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The unique account ID for the Amazon Web Services account that owns the schema.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the schema object was created.</p>"
        },
        "updateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the schema object was last updated.</p>"
        },
        "collaborationId":{
          "shape":"UUID",
          "documentation":"<p>The unique ID for the collaboration that the schema belongs to.</p>"
        },
        "collaborationArn":{
          "shape":"CollaborationArn",
          "documentation":"<p>The unique ARN for the collaboration that the schema belongs to.</p>"
        },
        "analysisRuleTypes":{
          "shape":"AnalysisRuleTypeList",
          "documentation":"<p>The types of analysis rules that are associated with this schema object.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p>The analysis method for the associated schema.</p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "resourceArn":{
          "shape":"SchemaResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the schema summary resource.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The selected analysis methods for the schema.</p>"
        }
      },
      "documentation":"<p>The schema summary for the objects listed by the request.</p>"
    },
    "SchemaSummaryList":{
      "type":"list",
      "member":{"shape":"SchemaSummary"}
    },
    "SchemaType":{
      "type":"string",
      "enum":[
        "TABLE",
        "ID_MAPPING_TABLE",
        "INTERMEDIATE_TABLE"
      ]
    },
    "SchemaTypeProperties":{
      "type":"structure",
      "members":{
        "idMappingTable":{
          "shape":"IdMappingTableSchemaTypeProperties",
          "documentation":"<p>The ID mapping table for the schema type properties.</p>"
        },
        "intermediateTable":{
          "shape":"IntermediateTableSchemaTypeProperties",
          "documentation":"<p>The schema type properties for an intermediate table.</p>"
        },
        "configuredTableAssociation":{
          "shape":"ConfiguredTableAssociationSchemaTypeProperties",
          "documentation":"<p>The schema type properties for a configured table association.</p>"
        }
      },
      "documentation":"<p>Information about the schema type properties.</p>",
      "union":true
    },
    "SecretsManagerArn":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"arn:aws:secretsmanager:[a-z]{2}-[a-z]+-[0-9]:\\d{12}:secret:.*"
    },
    "SelectedAnalysisMethod":{
      "type":"string",
      "enum":[
        "DIRECT_QUERY",
        "DIRECT_JOB"
      ]
    },
    "SelectedAnalysisMethods":{
      "type":"list",
      "member":{"shape":"SelectedAnalysisMethod"}
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":[
        "message",
        "quotaName",
        "quotaValue"
      ],
      "members":{
        "message":{"shape":"String"},
        "quotaName":{
          "shape":"String",
          "documentation":"<p>The name of the quota.</p>"
        },
        "quotaValue":{
          "shape":"Double",
          "documentation":"<p>The value of the quota.</p>"
        }
      },
      "documentation":"<p>Request denied because service quota has been exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SnowflakeAccountIdentifier":{
      "type":"string",
      "max":256,
      "min":3,
      "pattern":"[\\p{L}\\p{M}\\p{N}\\p{Pc}\\p{Pd}\\p{Zs}.]+"
    },
    "SnowflakeDatabaseName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{N}\\p{Pc}\\p{Pd}\\p{Zs}]+"
    },
    "SnowflakeSchemaName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{N}\\p{Pc}\\p{Pd}\\p{Zs}]+"
    },
    "SnowflakeTableName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[\\p{L}\\p{M}\\p{N}\\p{Pc}\\p{Pd}\\p{Zs}]+"
    },
    "SnowflakeTableReference":{
      "type":"structure",
      "required":[
        "secretArn",
        "accountIdentifier",
        "databaseName",
        "tableName",
        "schemaName",
        "tableSchema"
      ],
      "members":{
        "secretArn":{
          "shape":"SecretsManagerArn",
          "documentation":"<p> The secret ARN of the Snowflake table reference.</p>"
        },
        "accountIdentifier":{
          "shape":"SnowflakeAccountIdentifier",
          "documentation":"<p> The account identifier for the Snowflake table reference.</p>"
        },
        "databaseName":{
          "shape":"SnowflakeDatabaseName",
          "documentation":"<p> The name of the database the Snowflake table belongs to.</p>"
        },
        "tableName":{
          "shape":"SnowflakeTableName",
          "documentation":"<p> The name of the Snowflake table.</p>"
        },
        "schemaName":{
          "shape":"SnowflakeSchemaName",
          "documentation":"<p> The schema name of the Snowflake table reference.</p>"
        },
        "tableSchema":{
          "shape":"SnowflakeTableSchema",
          "documentation":"<p> The schema of the Snowflake table.</p>"
        }
      },
      "documentation":"<p> A reference to a table within Snowflake.</p>"
    },
    "SnowflakeTableSchema":{
      "type":"structure",
      "members":{
        "v1":{
          "shape":"SnowflakeTableSchemaList",
          "documentation":"<p> The schema of a Snowflake table.</p>"
        }
      },
      "documentation":"<p> The schema of a Snowflake table.</p>",
      "union":true
    },
    "SnowflakeTableSchemaList":{
      "type":"list",
      "member":{"shape":"SnowflakeTableSchemaV1"},
      "max":250,
      "min":1
    },
    "SnowflakeTableSchemaV1":{
      "type":"structure",
      "required":[
        "columnName",
        "columnType"
      ],
      "members":{
        "columnName":{
          "shape":"ColumnName",
          "documentation":"<p> The column name.</p>"
        },
        "columnType":{
          "shape":"ColumnTypeString",
          "documentation":"<p> The column's data type. Supported data types: <code>ARRAY</code>, <code>BIGINT</code>, <code>BOOLEAN</code>, <code>CHAR</code>, <code>DATE</code>, <code>DECIMAL</code>, <code>DOUBLE</code>, <code>DOUBLE PRECISION</code>, <code>FLOAT</code>, <code>FLOAT4</code>, <code>INT</code>, <code>INTEGER</code>, <code>MAP</code>, <code>NUMERIC</code>, <code>NUMBER</code>, <code>REAL</code>, <code>SMALLINT</code>, <code>STRING</code>, <code>TIMESTAMP</code>, <code>TIMESTAMP_LTZ</code>, <code>TIMESTAMP_NTZ</code>, <code>DATETIME</code>, <code>TINYINT</code>, <code>VARCHAR</code>, <code>TEXT</code>, <code>CHARACTER</code>.</p>"
        }
      },
      "documentation":"<p> The Snowflake table schema.</p>"
    },
    "SparkProperties":{
      "type":"map",
      "key":{"shape":"SparkPropertyKey"},
      "value":{"shape":"SparkPropertyValue"},
      "max":50,
      "min":0
    },
    "SparkPropertyKey":{
      "type":"string",
      "max":200,
      "min":1
    },
    "SparkPropertyValue":{
      "type":"string",
      "max":500,
      "min":0
    },
    "StartProtectedJobInput":{
      "type":"structure",
      "required":[
        "type",
        "membershipIdentifier",
        "jobParameters"
      ],
      "members":{
        "type":{
          "shape":"ProtectedJobType",
          "documentation":"<p> The type of protected job to start.</p>"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership to run this job against. Currently accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "jobParameters":{
          "shape":"ProtectedJobParameters",
          "documentation":"<p> The job parameters.</p>"
        },
        "resultConfiguration":{
          "shape":"ProtectedJobResultConfigurationInput",
          "documentation":"<p>The details needed to write the job results.</p>"
        },
        "computeConfiguration":{
          "shape":"ProtectedJobComputeConfiguration",
          "documentation":"<p>The compute configuration for the protected job.</p>"
        },
        "jobComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the job compute costs.</p>"
        }
      }
    },
    "StartProtectedJobOutput":{
      "type":"structure",
      "required":["protectedJob"],
      "members":{
        "protectedJob":{
          "shape":"ProtectedJob",
          "documentation":"<p> The protected job.</p>"
        }
      }
    },
    "StartProtectedQueryInput":{
      "type":"structure",
      "required":[
        "type",
        "membershipIdentifier",
        "sqlParameters"
      ],
      "members":{
        "type":{
          "shape":"ProtectedQueryType",
          "documentation":"<p>The type of the protected query to be started.</p>"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for the membership to run this query against. Currently accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "sqlParameters":{
          "shape":"ProtectedQuerySQLParameters",
          "documentation":"<p>The protected SQL query parameters.</p>"
        },
        "resultConfiguration":{
          "shape":"ProtectedQueryResultConfiguration",
          "documentation":"<p>The details needed to write the query results.</p>"
        },
        "computeConfiguration":{
          "shape":"ComputeConfiguration",
          "documentation":"<p> The compute configuration for the protected query.</p>"
        },
        "queryComputePayerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The account ID of the member that pays for the query compute costs.</p>"
        }
      }
    },
    "StartProtectedQueryOutput":{
      "type":"structure",
      "required":["protectedQuery"],
      "members":{
        "protectedQuery":{
          "shape":"ProtectedQuery",
          "documentation":"<p>The protected query.</p>"
        }
      }
    },
    "String":{"type":"string"},
    "SupportedS3Region":{
      "type":"string",
      "enum":[
        "us-west-1",
        "us-west-2",
        "us-east-1",
        "us-east-2",
        "af-south-1",
        "ap-east-1",
        "ap-east-2",
        "ap-south-2",
        "ap-southeast-1",
        "ap-southeast-2",
        "ap-southeast-3",
        "ap-southeast-5",
        "ap-southeast-4",
        "ap-southeast-7",
        "ap-south-1",
        "ap-northeast-3",
        "ap-northeast-1",
        "ap-northeast-2",
        "ca-central-1",
        "ca-west-1",
        "eu-south-1",
        "eu-west-3",
        "eu-south-2",
        "eu-central-2",
        "eu-central-1",
        "eu-north-1",
        "eu-west-1",
        "eu-west-2",
        "me-south-1",
        "me-central-1",
        "il-central-1",
        "sa-east-1",
        "mx-central-1"
      ]
    },
    "SyntheticDataColumnName":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-z0-9_](([a-z0-9_]+-)*([a-z0-9_]+))?"
    },
    "SyntheticDataColumnProperties":{
      "type":"structure",
      "required":[
        "columnName",
        "columnType",
        "isPredictiveValue"
      ],
      "members":{
        "columnName":{
          "shape":"SyntheticDataColumnName",
          "documentation":"<p>The name of the data column as it appears in the dataset.</p>"
        },
        "columnType":{
          "shape":"SyntheticDataColumnType",
          "documentation":"<p>The data type of the column, which determines how the synthetic data generation algorithm processes and synthesizes values for this column.</p>"
        },
        "isPredictiveValue":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if this column contains predictive values that should be treated as target variables in machine learning models. This affects how the synthetic data generation preserves statistical relationships.</p>"
        }
      },
      "documentation":"<p>Properties that define how a specific data column should be handled during synthetic data generation, including its name, type, and role in predictive modeling.</p>"
    },
    "SyntheticDataColumnType":{
      "type":"string",
      "enum":[
        "CATEGORICAL",
        "NUMERICAL"
      ]
    },
    "SyntheticDataGenerationPaymentConfig":{
      "type":"structure",
      "required":["isResponsible"],
      "members":{
        "isResponsible":{
          "shape":"Boolean",
          "documentation":"<p>Indicates who is responsible for paying for synthetic data generation.</p>"
        }
      },
      "documentation":"<p>Payment configuration for synthetic data generation.</p>"
    },
    "SyntheticDataParameters":{
      "type":"structure",
      "members":{
        "mlSyntheticDataParameters":{
          "shape":"MLSyntheticDataParameters",
          "documentation":"<p>The machine learning-specific parameters for synthetic data generation.</p>"
        }
      },
      "documentation":"<p>The parameters that control how synthetic data is generated, including privacy settings, column classifications, and other configuration options that affect the data synthesis process.</p>",
      "union":true
    },
    "TableAlias":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?"
    },
    "TableAliasList":{
      "type":"list",
      "member":{"shape":"TableAlias"},
      "max":25,
      "min":1
    },
    "TableDescription":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*"
    },
    "TableReference":{
      "type":"structure",
      "members":{
        "glue":{
          "shape":"GlueTableReference",
          "documentation":"<p>If present, a reference to the Glue table referred to by this table reference.</p>"
        },
        "snowflake":{
          "shape":"SnowflakeTableReference",
          "documentation":"<p> If present, a reference to the Snowflake table referred to by this table reference.</p>"
        },
        "athena":{
          "shape":"AthenaTableReference",
          "documentation":"<p> If present, a reference to the Athena table referred to by this table reference.</p>"
        }
      },
      "documentation":"<p>A pointer to the dataset that underlies this table.</p>",
      "union":true
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "documentation":"<p>Map of tags assigned to a resource</p>",
      "max":200,
      "min":0
    },
    "TagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"CleanroomsArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the resource you want to tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of objects specifying each key name and value.</p>"
        }
      }
    },
    "TagResourceOutput":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TargetProtectedJobStatus":{
      "type":"string",
      "enum":["CANCELLED"]
    },
    "TargetProtectedQueryStatus":{
      "type":"string",
      "enum":["CANCELLED"]
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "UUID":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "UntagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"CleanroomsArn",
          "documentation":"<p>The Amazon Resource Name (ARN) associated with the resource you want to remove the tag from.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>A list of key names of tags to be removed.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceOutput":{
      "type":"structure",
      "members":{}
    },
    "UpdateAnalysisTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "analysisTemplateIdentifier"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a membership resource.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "analysisTemplateIdentifier":{
          "shape":"AnalysisTemplateIdentifier",
          "documentation":"<p>The identifier for the analysis template resource.</p>",
          "location":"uri",
          "locationName":"analysisTemplateIdentifier"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A new description for the analysis template.</p>"
        }
      }
    },
    "UpdateAnalysisTemplateOutput":{
      "type":"structure",
      "required":["analysisTemplate"],
      "members":{
        "analysisTemplate":{
          "shape":"AnalysisTemplate",
          "documentation":"<p>The analysis template.</p>"
        }
      }
    },
    "UpdateCollaborationChangeRequestInput":{
      "type":"structure",
      "required":[
        "collaborationIdentifier",
        "changeRequestIdentifier",
        "action"
      ],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The unique identifier of the collaboration that contains the change request to be updated.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "changeRequestIdentifier":{
          "shape":"CollaborationChangeRequestIdentifier",
          "documentation":"<p>The unique identifier of the specific change request to be updated within the collaboration.</p>",
          "location":"uri",
          "locationName":"changeRequestIdentifier"
        },
        "action":{
          "shape":"ChangeRequestAction",
          "documentation":"<p>The action to perform on the change request. Valid values include APPROVE (approve the change), DENY (reject the change), CANCEL (cancel the request), and COMMIT (commit after the request is approved).</p> <p>For change requests without automatic approval, a member in the collaboration can manually APPROVE or DENY a change request. The collaboration owner can manually CANCEL or COMMIT a change request.</p>"
        }
      }
    },
    "UpdateCollaborationChangeRequestOutput":{
      "type":"structure",
      "required":["collaborationChangeRequest"],
      "members":{
        "collaborationChangeRequest":{"shape":"CollaborationChangeRequest"}
      }
    },
    "UpdateCollaborationInput":{
      "type":"structure",
      "required":["collaborationIdentifier"],
      "members":{
        "collaborationIdentifier":{
          "shape":"CollaborationIdentifier",
          "documentation":"<p>The identifier for the collaboration.</p>",
          "location":"uri",
          "locationName":"collaborationIdentifier"
        },
        "name":{
          "shape":"CollaborationName",
          "documentation":"<p>A human-readable identifier provided by the collaboration owner. Display names are not unique.</p>"
        },
        "description":{
          "shape":"CollaborationDescription",
          "documentation":"<p>A description of the collaboration.</p>"
        },
        "analyticsEngine":{
          "shape":"AnalyticsEngine",
          "documentation":"<p>The analytics engine.</p> <note> <p>After July 16, 2025, the <code>CLEAN_ROOMS_SQL</code> parameter will no longer be available. </p> </note>"
        }
      }
    },
    "UpdateCollaborationOutput":{
      "type":"structure",
      "required":["collaboration"],
      "members":{
        "collaboration":{
          "shape":"Collaboration",
          "documentation":"<p>The entire collaboration that has been updated.</p>"
        }
      }
    },
    "UpdateConfiguredAudienceModelAssociationInput":{
      "type":"structure",
      "required":[
        "configuredAudienceModelAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredAudienceModelAssociationIdentifier":{
          "shape":"ConfiguredAudienceModelAssociationIdentifier",
          "documentation":"<p>A unique identifier for the configured audience model association that you want to update.</p>",
          "location":"uri",
          "locationName":"configuredAudienceModelAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier of the membership that contains the configured audience model association that you want to update.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A new description for the configured audience model association.</p>"
        },
        "name":{
          "shape":"ConfiguredAudienceModelAssociationName",
          "documentation":"<p>A new name for the configured audience model association.</p>"
        }
      }
    },
    "UpdateConfiguredAudienceModelAssociationOutput":{
      "type":"structure",
      "required":["configuredAudienceModelAssociation"],
      "members":{
        "configuredAudienceModelAssociation":{
          "shape":"ConfiguredAudienceModelAssociation",
          "documentation":"<p>Details about the configured audience model association that you updated.</p>"
        }
      }
    },
    "UpdateConfiguredTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "configuredTableIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAnalysisRuleType",
          "documentation":"<p>The analysis rule type to be updated. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        },
        "analysisRulePolicy":{
          "shape":"ConfiguredTableAnalysisRulePolicy",
          "documentation":"<p>The new analysis rule policy for the configured table analysis rule.</p>"
        }
      }
    },
    "UpdateConfiguredTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAnalysisRule",
          "documentation":"<p>The entire updated analysis rule.</p>"
        }
      }
    },
    "UpdateConfiguredTableAssociationAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "configuredTableAssociationIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p> A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p> The identifier for the configured table association to update.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "analysisRuleType":{
          "shape":"ConfiguredTableAssociationAnalysisRuleType",
          "documentation":"<p> The analysis rule type that you want to update.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        },
        "analysisRulePolicy":{
          "shape":"ConfiguredTableAssociationAnalysisRulePolicy",
          "documentation":"<p> The updated analysis rule policy for the conﬁgured table association.</p>"
        }
      }
    },
    "UpdateConfiguredTableAssociationAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"ConfiguredTableAssociationAnalysisRule",
          "documentation":"<p> The updated analysis rule for the conﬁgured table association. In the console, the <code>ConfiguredTableAssociationAnalysisRule</code> is referred to as the <i>collaboration analysis rule</i>.</p>"
        }
      }
    },
    "UpdateConfiguredTableAssociationInput":{
      "type":"structure",
      "required":[
        "configuredTableAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "configuredTableAssociationIdentifier":{
          "shape":"ConfiguredTableAssociationIdentifier",
          "documentation":"<p>The unique identifier for the configured table association to update. Currently accepts the configured table association ID.</p>",
          "location":"uri",
          "locationName":"configuredTableAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique ID for the membership that the configured table association belongs to.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A new description for the configured table association.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The service will assume this role to access catalog metadata and query the table.</p>"
        }
      }
    },
    "UpdateConfiguredTableAssociationOutput":{
      "type":"structure",
      "required":["configuredTableAssociation"],
      "members":{
        "configuredTableAssociation":{
          "shape":"ConfiguredTableAssociation",
          "documentation":"<p>The entire updated configured table association.</p>"
        }
      }
    },
    "UpdateConfiguredTableInput":{
      "type":"structure",
      "required":["configuredTableIdentifier"],
      "members":{
        "configuredTableIdentifier":{
          "shape":"ConfiguredTableIdentifier",
          "documentation":"<p>The identifier for the configured table to update. Currently accepts the configured table ID.</p>",
          "location":"uri",
          "locationName":"configuredTableIdentifier"
        },
        "name":{
          "shape":"DisplayName",
          "documentation":"<p>A new name for the configured table.</p>"
        },
        "description":{
          "shape":"TableDescription",
          "documentation":"<p>A new description for the configured table.</p>"
        },
        "tableReference":{"shape":"TableReference"},
        "allowedColumns":{
          "shape":"AllowedColumnList",
          "documentation":"<p>The columns of the underlying table that can be used by collaborations or analysis rules.</p>"
        },
        "analysisMethod":{
          "shape":"AnalysisMethod",
          "documentation":"<p> The analysis method for the configured table.</p> <p> <code>DIRECT_QUERY</code> allows SQL queries to be run directly on this table.</p> <p> <code>DIRECT_JOB</code> allows PySpark jobs to be run directly on this table.</p> <p> <code>MULTIPLE</code> allows both SQL queries and PySpark jobs to be run directly on this table.</p>"
        },
        "selectedAnalysisMethods":{
          "shape":"SelectedAnalysisMethods",
          "documentation":"<p> The selected analysis methods for the table configuration update.</p>"
        }
      }
    },
    "UpdateConfiguredTableOutput":{
      "type":"structure",
      "required":["configuredTable"],
      "members":{
        "configuredTable":{
          "shape":"ConfiguredTable",
          "documentation":"<p>The updated configured table.</p>"
        }
      }
    },
    "UpdateIdMappingTableInput":{
      "type":"structure",
      "required":[
        "idMappingTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idMappingTableIdentifier":{
          "shape":"UUID",
          "documentation":"<p>The unique identifier of the ID mapping table that you want to update.</p>",
          "location":"uri",
          "locationName":"idMappingTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID mapping table that you want to update.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A new description for the ID mapping table.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Web Services KMS key.</p>"
        }
      }
    },
    "UpdateIdMappingTableOutput":{
      "type":"structure",
      "required":["idMappingTable"],
      "members":{
        "idMappingTable":{
          "shape":"IdMappingTable",
          "documentation":"<p>The updated ID mapping table.</p>"
        }
      }
    },
    "UpdateIdNamespaceAssociationInput":{
      "type":"structure",
      "required":[
        "idNamespaceAssociationIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "idNamespaceAssociationIdentifier":{
          "shape":"IdNamespaceAssociationIdentifier",
          "documentation":"<p>The unique identifier of the ID namespace association that you want to update.</p>",
          "location":"uri",
          "locationName":"idNamespaceAssociationIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the ID namespace association that you want to update.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "name":{
          "shape":"GenericResourceName",
          "documentation":"<p>A new name for the ID namespace association.</p>"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A new description for the ID namespace association.</p>"
        },
        "idMappingConfig":{
          "shape":"IdMappingConfig",
          "documentation":"<p>The configuration settings for the ID mapping table.</p>"
        }
      }
    },
    "UpdateIdNamespaceAssociationOutput":{
      "type":"structure",
      "required":["idNamespaceAssociation"],
      "members":{
        "idNamespaceAssociation":{
          "shape":"IdNamespaceAssociation",
          "documentation":"<p>The updated ID namespace association.</p>"
        }
      }
    },
    "UpdateIntermediateTableAnalysisRuleInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "intermediateTableIdentifier",
        "analysisRuleType",
        "analysisRulePolicy"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table for which to update the analysis rule.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "analysisRuleType":{
          "shape":"IntermediateTableAnalysisRuleType",
          "documentation":"<p>The type of analysis rule to update. Currently, only <code>CUSTOM</code> is supported.</p>",
          "location":"uri",
          "locationName":"analysisRuleType"
        },
        "analysisRulePolicy":{
          "shape":"IntermediateTableAnalysisRulePolicy",
          "documentation":"<p>The updated analysis rule policy for the intermediate table.</p>"
        }
      }
    },
    "UpdateIntermediateTableAnalysisRuleOutput":{
      "type":"structure",
      "required":["analysisRule"],
      "members":{
        "analysisRule":{
          "shape":"IntermediateTableAnalysisRule",
          "documentation":"<p>The updated analysis rule for the intermediate table.</p>"
        }
      }
    },
    "UpdateIntermediateTableInput":{
      "type":"structure",
      "required":[
        "intermediateTableIdentifier",
        "membershipIdentifier"
      ],
      "members":{
        "intermediateTableIdentifier":{
          "shape":"IntermediateTableIdentifier",
          "documentation":"<p>The unique identifier of the intermediate table to update.</p>",
          "location":"uri",
          "locationName":"intermediateTableIdentifier"
        },
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership that contains the intermediate table.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "description":{
          "shape":"ResourceDescription",
          "documentation":"<p>A new description for the intermediate table.</p>"
        },
        "kmsKeyArn":{
          "shape":"KMSKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the customer-managed KMS key to use for encrypting future population data.</p>"
        },
        "columns":{
          "shape":"IntermediateTableColumnList",
          "documentation":"<p>The list of columns with updated type definitions. Only the type of existing columns can be updated.</p>"
        }
      }
    },
    "UpdateIntermediateTableOutput":{
      "type":"structure",
      "required":["intermediateTable"],
      "members":{
        "intermediateTable":{
          "shape":"IntermediateTable",
          "documentation":"<p>The updated intermediate table.</p>"
        }
      }
    },
    "UpdateMembershipInput":{
      "type":"structure",
      "required":["membershipIdentifier"],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The unique identifier of the membership.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "queryLogStatus":{
          "shape":"MembershipQueryLogStatus",
          "documentation":"<p>An indicator as to whether query logging has been enabled or disabled for the membership.</p> <p>When <code>ENABLED</code>, Clean Rooms logs details about queries run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "jobLogStatus":{
          "shape":"MembershipJobLogStatus",
          "documentation":"<p>An indicator as to whether job logging has been enabled or disabled for the collaboration. </p> <p>When <code>ENABLED</code>, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed in Amazon CloudWatch Logs. The default value is <code>DISABLED</code>.</p>"
        },
        "defaultResultConfiguration":{
          "shape":"MembershipProtectedQueryResultConfiguration",
          "documentation":"<p>The default protected query result configuration as specified by the member who can receive results.</p>"
        },
        "defaultJobResultConfiguration":{
          "shape":"MembershipProtectedJobResultConfiguration",
          "documentation":"<p> The default job result configuration.</p>"
        },
        "membershipPaymentConfiguration":{
          "shape":"UpdateMembershipPaymentConfiguration",
          "documentation":"<p>The payment configuration to update for the membership.</p>"
        }
      }
    },
    "UpdateMembershipOutput":{
      "type":"structure",
      "required":["membership"],
      "members":{
        "membership":{"shape":"Membership"}
      }
    },
    "UpdateMembershipPaymentConfiguration":{
      "type":"structure",
      "members":{
        "queryCompute":{"shape":"MembershipQueryComputePaymentConfig"},
        "machineLearning":{"shape":"MembershipMLPaymentConfig"},
        "jobCompute":{"shape":"MembershipJobComputePaymentConfig"}
      },
      "documentation":"<p>An object representing the payment responsibilities to update for the membership.</p>"
    },
    "UpdatePrivacyBudgetTemplateInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "privacyBudgetTemplateIdentifier",
        "privacyBudgetType"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>A unique identifier for one of your memberships for a collaboration. The privacy budget template is updated in the collaboration that this membership belongs to. Accepts a membership ID.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "privacyBudgetTemplateIdentifier":{
          "shape":"PrivacyBudgetTemplateIdentifier",
          "documentation":"<p>A unique identifier for your privacy budget template that you want to update.</p>",
          "location":"uri",
          "locationName":"privacyBudgetTemplateIdentifier"
        },
        "privacyBudgetType":{
          "shape":"PrivacyBudgetType",
          "documentation":"<p>Specifies the type of the privacy budget template.</p>"
        },
        "parameters":{
          "shape":"PrivacyBudgetTemplateUpdateParameters",
          "documentation":"<p>Specifies the epsilon and noise parameters for the privacy budget template.</p>"
        }
      }
    },
    "UpdatePrivacyBudgetTemplateOutput":{
      "type":"structure",
      "required":["privacyBudgetTemplate"],
      "members":{
        "privacyBudgetTemplate":{
          "shape":"PrivacyBudgetTemplate",
          "documentation":"<p>Summary of the privacy budget template.</p>"
        }
      }
    },
    "UpdateProtectedJobInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "protectedJobIdentifier",
        "targetStatus"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a member of a protected job instance.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "protectedJobIdentifier":{
          "shape":"ProtectedJobIdentifier",
          "documentation":"<p> The identifier of the protected job to update.</p>",
          "location":"uri",
          "locationName":"protectedJobIdentifier"
        },
        "targetStatus":{
          "shape":"TargetProtectedJobStatus",
          "documentation":"<p>The target status of a protected job. Used to update the execution status of a currently running job.</p>"
        }
      }
    },
    "UpdateProtectedJobOutput":{
      "type":"structure",
      "required":["protectedJob"],
      "members":{
        "protectedJob":{
          "shape":"ProtectedJob",
          "documentation":"<p>The protected job output.</p>"
        }
      }
    },
    "UpdateProtectedQueryInput":{
      "type":"structure",
      "required":[
        "membershipIdentifier",
        "protectedQueryIdentifier",
        "targetStatus"
      ],
      "members":{
        "membershipIdentifier":{
          "shape":"MembershipIdentifier",
          "documentation":"<p>The identifier for a member of a protected query instance.</p>",
          "location":"uri",
          "locationName":"membershipIdentifier"
        },
        "protectedQueryIdentifier":{
          "shape":"ProtectedQueryIdentifier",
          "documentation":"<p>The identifier for a protected query instance.</p>",
          "location":"uri",
          "locationName":"protectedQueryIdentifier"
        },
        "targetStatus":{
          "shape":"TargetProtectedQueryStatus",
          "documentation":"<p>The target status of a query. Used to update the execution status of a currently running query.</p>"
        }
      }
    },
    "UpdateProtectedQueryOutput":{
      "type":"structure",
      "required":["protectedQuery"],
      "members":{
        "protectedQuery":{
          "shape":"ProtectedQuery",
          "documentation":"<p>The protected query output.</p>"
        }
      }
    },
    "UsersNoisePerQuery":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":10
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>A reason code for the exception.</p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>Validation errors for specific input parameters.</p>"
        }
      },
      "documentation":"<p>The input fails to satisfy the specified constraints.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the input parameter.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A message for the input validation error.</p>"
        }
      },
      "documentation":"<p>Describes validation errors for specific input parameters.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "FIELD_VALIDATION_FAILED",
        "INVALID_CONFIGURATION",
        "INVALID_QUERY",
        "IAM_SYNCHRONIZATION_DELAY"
      ]
    },
    "WorkerComputeConfiguration":{
      "type":"structure",
      "members":{
        "type":{
          "shape":"WorkerComputeType",
          "documentation":"<p> The worker compute configuration type.</p>"
        },
        "number":{
          "shape":"WorkerComputeConfigurationNumberInteger",
          "documentation":"<p> The number of workers.</p> <p>SQL queries support a minimum value of 2 and a maximum value of 400. </p> <p>PySpark jobs support a minimum value of 4 and a maximum value of 128.</p>",
          "box":true
        },
        "properties":{
          "shape":"WorkerComputeConfigurationProperties",
          "documentation":"<p>The configuration properties for the worker compute environment. These properties allow you to customize the compute settings for your Clean Rooms workloads.</p>"
        }
      },
      "documentation":"<p> The configuration of the compute resources for workers running an analysis with the Clean Rooms SQL analytics engine.</p>"
    },
    "WorkerComputeConfigurationNumberInteger":{
      "type":"integer",
      "box":true,
      "max":1024,
      "min":2
    },
    "WorkerComputeConfigurationProperties":{
      "type":"structure",
      "members":{
        "spark":{
          "shape":"SparkProperties",
          "documentation":"<p>The Spark configuration properties for SQL and PySpark workloads. This map contains key-value pairs that configure Apache Spark settings to optimize performance for your data processing jobs. You can specify up to 50 Spark properties, with each key being 1-200 characters and each value being 0-500 characters. These properties allow you to adjust compute capacity for large datasets and complex workloads.</p>"
        }
      },
      "documentation":"<p>The configuration properties that define the compute environment settings for workers in Clean Rooms. These properties enable customization of the underlying compute environment to optimize performance for your specific workloads.</p>",
      "union":true
    },
    "WorkerComputeType":{
      "type":"string",
      "enum":[
        "CR.1X",
        "CR.4X",
        "CR.8X"
      ]
    }
  },
  "documentation":"<p>Welcome to the <i>Clean Rooms API Reference</i>.</p> <p>Clean Rooms is an Amazon Web Services service that helps multiple parties to join their data together in a secure collaboration workspace. In the collaboration, members who can run queries and jobs and receive results can get insights into the collective datasets without either party getting access to the other party's raw data.</p> <p>To learn more about Clean Rooms concepts, procedures, and best practices, see the <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/userguide/what-is.html\">Clean Rooms User Guide</a>.</p> <p>To learn more about SQL commands, functions, and conditions supported in Clean Rooms, see the <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/sql-reference/sql-reference.html\">Clean Rooms SQL Reference</a>.</p>"
}
