export interface SchemaAnalysisRuleRequest {
    /** The name of the analysis rule schema that you are requesting. */
    name: string;
    /** The type of analysis rule schema that you are requesting. */
    type: 'AGGREGATION' | 'LIST' | 'CUSTOM' | 'ID_MAPPING_TABLE';
}
export interface AnalysisTemplateArtifacts {
    /** The entry point for the analysis template artifacts. */
    entryPoint: any;
    /** Additional artifacts for the analysis template. */
    additionalArtifacts?: any[];
    /** The role ARN for the analysis template artifacts. */
    roleArn: string;
}
export interface AnalysisParameter {
    /** The name of the parameter. The name must use only alphanumeric or underscore (_) characters. */
    name: string;
    /** The type of parameter. */
    type: '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';
    /** Optional. The default value that is applied in the analysis template. The member who can query can override this value in the query editor. */
    defaultValue?: string;
}
export interface AnalysisSchema {
    /** The tables referenced in the analysis schema. */
    referencedTables?: string[];
}
export interface ErrorMessageConfiguration {
    /** 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. Because this settin */
    type: 'DETAILED';
}
export interface MLSyntheticDataParameters {
    /** The epsilon value for differential privacy when generating synthetic data. Lower values provide stronger privacy guarantees but may reduce data utility. */
    epsilon: number;
    /** The maximum acceptable score for membership inference attack vulnerability. Synthetic data generation fails if the score for the resulting data exceeds this threshold. */
    maxMembershipInferenceAttackScore: number;
    /** Classification details for data columns that specify how each column should be treated during synthetic data generation. */
    columnClassification: any;
}
export interface MemberSpecification {
    /** The identifier used to reference members of the collaboration. Currently only supports Amazon Web Services account ID. */
    accountId: string;
    /** The abilities granted to the collaboration member. */
    memberAbilities: any[];
    /** The ML abilities granted to the collaboration member. */
    mlMemberAbilities?: any;
    /** The member's display name. */
    displayName: string;
    /** The collaboration member's payment responsibilities set by the collaboration creator. If the collaboration creator hasn't speciﬁed anyone as the member paying for query compute costs, then the member  */
    paymentConfiguration?: any;
}
export interface MLMemberAbilities {
    /** The custom ML member abilities for a collaboration member. */
    customMLMemberAbilities: 'CAN_RECEIVE_MODEL_OUTPUT' | 'CAN_RECEIVE_INFERENCE_OUTPUT'[];
}
export interface DataEncryptionMetadata {
    /** Indicates whether encrypted tables can contain cleartext data (TRUE) or are to cryptographically process every column (FALSE). */
    allowCleartext: boolean;
    /** Indicates whether Fingerprint columns can contain duplicate entries (TRUE) or are to contain only non-repeated values (FALSE). */
    allowDuplicates: boolean;
    /** Indicates whether Fingerprint columns can be joined on any other Fingerprint column with a different name (TRUE) or can only be joined on Fingerprint columns of the same name (FALSE). */
    allowJoinsOnColumnsWithDifferentNames: boolean;
    /** Indicates whether NULL values are to be copied as NULL to encrypted tables (TRUE) or cryptographically processed (FALSE). */
    preserveNulls: boolean;
}
export interface QueryComputePaymentConfig {
    /** Indicates whether the collaboration creator has configured the collaboration member to pay for query compute costs (TRUE) or has not configured the collaboration member to pay for query compute costs  */
    isResponsible: boolean;
}
export interface MLPaymentConfig {
    /** The payment responsibilities accepted by the member for model training. */
    modelTraining?: any;
    /** The payment responsibilities accepted by the member for model inference. */
    modelInference?: any;
    /** The payment configuration for machine learning synthetic data generation. */
    syntheticDataGeneration?: any;
}
export interface JobComputePaymentConfig {
    /** Indicates whether the collaboration creator has configured the collaboration member to pay for query and job compute costs (TRUE) or has not configured the collaboration member to pay for query and jo */
    isResponsible: boolean;
}
export interface PaymentConfiguration {
    /** The collaboration member's payment responsibilities set by the collaboration creator for query compute costs. */
    queryCompute: QueryComputePaymentConfig;
    /** An object representing the collaboration member's machine learning payment responsibilities set by the collaboration creator. */
    machineLearning?: MLPaymentConfig;
    /** The compute configuration for the job. */
    jobCompute?: JobComputePaymentConfig;
}
export interface ChangeInput {
    /** The type of specification for the change. Currently supports MEMBER for member-related changes. */
    specificationType: 'MEMBER' | 'COLLABORATION';
    /** The specification details for the change. The structure depends on the specification type. */
    specification: any;
}
export interface GlueTableReference {
    /** The Amazon Web Services Region where the Glue table is located. This parameter is required to uniquely identify and access tables across different Regions. */
    region?: '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';
    /** The name of the Glue table. */
    tableName: string;
    /** The name of the database the Glue table belongs to. */
    databaseName: string;
}
export interface SnowflakeTableReference {
    /** The secret ARN of the Snowflake table reference. */
    secretArn: string;
    /** The account identifier for the Snowflake table reference. */
    accountIdentifier: string;
    /** The name of the database the Snowflake table belongs to. */
    databaseName: string;
    /** The name of the Snowflake table. */
    tableName: string;
    /** The schema name of the Snowflake table reference. */
    schemaName: string;
    /** The schema of the Snowflake table. */
    tableSchema: any;
}
export interface AthenaTableReference {
    /** The Amazon Web Services Region where the Athena table is located. This parameter is required to uniquely identify and access tables across different Regions. */
    region?: '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';
    /** The workgroup of the Athena table reference. */
    workGroup: string;
    /** The output location for the Athena table. */
    outputLocation?: string;
    /** The database name. */
    databaseName: string;
    /** The table reference. */
    tableName: string;
    /** The catalog name. */
    catalogName?: string;
}
export interface IdMappingTableInputReferenceConfig {
    /** The Amazon Resource Name (ARN) of the referenced resource in Entity Resolution. Valid values are ID mapping workflow ARNs. */
    inputReferenceArn: string;
    /** When TRUE, Clean Rooms manages permissions for the ID mapping table resource. When FALSE, the resource owner manages permissions for the ID mapping table resource. */
    manageResourcePolicies: boolean;
}
export interface IdNamespaceAssociationInputReferenceConfig {
    /** 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. */
    inputReferenceArn: string;
    /** When TRUE, Clean Rooms manages permissions for the ID namespace association resource. When FALSE, the resource owner manages permissions for the ID namespace association resource. */
    manageResourcePolicies: boolean;
}
export interface IdMappingConfig {
    /** An indicator as to whether you can use your column as a dimension column in the ID mapping table (TRUE) or not (FALSE). Default is FALSE. */
    allowUseAsDimensionColumn: boolean;
}
export interface MembershipProtectedQueryResultConfiguration {
    /** Configuration for protected query results. */
    outputConfiguration: {
        s3?: any;
    };
    /** 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. */
    roleArn?: string;
}
export interface MembershipProtectedJobResultConfiguration {
    /** The output configuration for a protected job result. */
    outputConfiguration: {
        s3?: any;
    };
    /** 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. */
    roleArn: string;
}
export interface MembershipQueryComputePaymentConfig {
    /** Indicates whether the collaboration member has accepted to pay for query compute costs (TRUE) or has not accepted to pay for query compute costs (FALSE). If the collaboration creator has not specified */
    isResponsible: boolean;
}
export interface MembershipMLPaymentConfig {
    /** The payment responsibilities accepted by the member for model training. */
    modelTraining?: any;
    /** The payment responsibilities accepted by the member for model inference. */
    modelInference?: any;
    /** The payment configuration for synthetic data generation for this machine learning membership. */
    syntheticDataGeneration?: any;
}
export interface MembershipJobComputePaymentConfig {
    /** Indicates whether the collaboration member has accepted to pay for job compute costs (TRUE) or has not accepted to pay for query and job compute costs (FALSE). There is only one member who pays for qu */
    isResponsible: boolean;
}
export interface MembershipPaymentConfiguration {
    /** The payment responsibilities accepted by the collaboration member for query compute costs. */
    queryCompute: MembershipQueryComputePaymentConfig;
    /** The payment responsibilities accepted by the collaboration member for machine learning costs. */
    machineLearning?: MembershipMLPaymentConfig;
    /** The payment responsibilities accepted by the collaboration member for job compute costs. */
    jobCompute?: MembershipJobComputePaymentConfig;
}
export interface DifferentialPrivacyTemplateParametersInput {
    /** The epsilon value that you want to use. */
    epsilon: number;
    /** 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. */
    usersNoisePerQuery: number;
}
export interface AccessBudgetsPrivacyTemplateParametersInput {
    /** An array of budget parameters that define the access budget configuration for the privacy template. */
    budgetParameters: any[];
    /** The Amazon Resource Name (ARN) of the resource associated with this privacy budget template. */
    resourceArn: string;
}
export interface DifferentialPrivacyPreviewParametersInput {
    /** The epsilon value that you want to preview. */
    epsilon: number;
    /** 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. */
    usersNoisePerQuery: number;
}
export interface ProtectedJobParameters {
    /** The ARN of the analysis template. */
    analysisTemplateArn: string;
    /** Runtime configuration values passed to the PySpark analysis script. Parameter names and types must match those defined in the analysis template. */
    parameters?: Record<string, string>;
}
export interface ProtectedJobResultConfigurationInput {
    /** The output configuration for a protected job result. */
    outputConfiguration: {
        member?: any;
    };
}
export interface ProtectedJobWorkerComputeConfiguration {
    /** The worker compute configuration type. */
    type: 'CR.1X' | 'CR.4X';
    /** The number of workers for a PySpark job. */
    number: number;
}
export interface ProtectedQuerySQLParameters {
    /** The query string to be submitted. */
    queryString?: string;
    /** The Amazon Resource Name (ARN) associated with the analysis template within a collaboration. */
    analysisTemplateArn?: string;
    /** The protected query SQL parameters. */
    parameters?: Record<string, string>;
}
export interface ProtectedQueryResultConfiguration {
    /** Configuration for protected query results. */
    outputConfiguration: {
        s3?: any;
    } | {
        member?: any;
    } | {
        distribute?: any;
    };
}
export interface WorkerComputeConfiguration {
    /** The worker compute configuration type. */
    type?: 'CR.1X' | 'CR.4X';
    /** The number of workers. SQL queries support a minimum value of 2 and a maximum value of 400. PySpark jobs support a minimum value of 4 and a maximum value of 128. */
    number?: number;
    /** The configuration properties for the worker compute environment. These properties allow you to customize the compute settings for your Clean Rooms workloads. */
    properties?: any;
}
export interface DifferentialPrivacyTemplateUpdateParameters {
    /** The updated epsilon value that you want to use. */
    epsilon?: number;
    /** 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. */
    usersNoisePerQuery?: number;
}
export interface AccessBudgetsPrivacyTemplateUpdateParameters {
    /** Updated array of budget parameters for the access budget configuration. */
    budgetParameters: any[];
}
export interface BatchGetCollaborationAnalysisTemplateInput {
    /** The Amazon Resource Name (ARN) associated with the analysis template within a collaboration. */
    analysisTemplateArns: string[];
    /** A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID. */
    collaborationIdentifier: string;
}
export interface BatchGetSchemaInput {
    /** A unique identifier for the collaboration that the schemas belong to. Currently accepts collaboration ID. */
    collaborationIdentifier: string;
    /** The names for the schema objects to retrieve. */
    names: string[];
}
export interface BatchGetSchemaAnalysisRuleInput {
    /** The unique identifier of the collaboration that contains the schema analysis rule. */
    collaborationIdentifier: string;
    /** The information that's necessary to retrieve a schema analysis rule. */
    schemaAnalysisRuleRequests: SchemaAnalysisRuleRequest[];
}
export interface CreateAnalysisTemplateInput {
    /** The format of the analysis template. */
    format: 'SQL' | 'PYSPARK_1_0';
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
    /** The name of the analysis template. */
    name: string;
    /** The information in the analysis template. */
    source: {
        text?: string;
    } | {
        artifacts?: AnalysisTemplateArtifacts;
    };
    /** The parameters of the analysis template. */
    analysisParameters?: AnalysisParameter[];
    /** The description of the analysis template. */
    description?: string;
    /** The configuration that specifies the level of detail in error messages returned by analyses using this template. When set to DETAILED, error messages include more information to help troubleshoot issu */
    errorMessageConfiguration?: ErrorMessageConfiguration;
    schema?: AnalysisSchema;
    /** The parameters for generating synthetic data when running the analysis template. */
    syntheticDataParameters?: {
        mlSyntheticDataParameters?: MLSyntheticDataParameters;
    };
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateCollaborationInput {
    /** The display name of the collaboration creator. */
    creatorDisplayName: string;
    /** The abilities granted to the collaboration creator. */
    creatorMemberAbilities: 'CAN_QUERY' | 'CAN_RECEIVE_RESULTS' | 'CAN_RUN_JOB'[];
    /** A description of the collaboration provided by the collaboration owner. */
    description: string;
    /** A list of initial members, not including the creator. This list is immutable. */
    members: MemberSpecification[];
    /** The display name for a collaboration. */
    name: string;
    /** An indicator as to whether query logging has been enabled or disabled for the collaboration. When ENABLED, Clean Rooms logs details about queries run within this collaboration and those logs can be vi */
    queryLogStatus: 'ENABLED' | 'DISABLED';
    /** 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 da */
    allowedResultRegions?: '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'[];
    /** The analytics engine. After July 16, 2025, the CLEAN_ROOMS_SQL parameter will no longer be available. */
    analyticsEngine?: 'SPARK' | 'CLEAN_ROOMS_SQL';
    /** The types of change requests that are automatically approved for this collaboration. */
    autoApprovedChangeRequestTypes?: 'ADD_MEMBER' | 'GRANT_RECEIVE_RESULTS_ABILITY' | 'REVOKE_RECEIVE_RESULTS_ABILITY'[];
    /** The ML abilities granted to the collaboration creator. */
    creatorMLMemberAbilities?: MLMemberAbilities;
    /** The collaboration creator's payment responsibilities set by the collaboration creator. If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the membe */
    creatorPaymentConfiguration?: PaymentConfiguration;
    /** The settings for client-side encryption with Cryptographic Computing for Clean Rooms. */
    dataEncryptionMetadata?: DataEncryptionMetadata;
    /** An indicator as to whether metrics have been enabled or disabled for the collaboration. When true, collaboration members can opt in to Amazon CloudWatch metrics for their membership queries. The defau */
    isMetricsEnabled?: boolean;
    /** Specifies whether job logs are enabled for this collaboration. When ENABLED, Clean Rooms logs details about jobs run within this collaboration; those logs can be viewed in Amazon CloudWatch Logs. The  */
    jobLogStatus?: 'ENABLED' | 'DISABLED';
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateCollaborationChangeRequestInput {
    /** The list of changes to apply to the collaboration. Each change specifies the type of modification and the details of what should be changed. */
    changes: ChangeInput[];
    /** The identifier of the collaboration that the change request is made against. */
    collaborationIdentifier: string;
}
export interface CreateConfiguredAudienceModelAssociationInput {
    /** A unique identifier for the configured audience model that you want to associate. */
    configuredAudienceModelArn: string;
    /** The name of the configured audience model association. */
    configuredAudienceModelAssociationName: string;
    /** When TRUE, 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 F */
    manageResourcePolicies: boolean;
    /** 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. */
    membershipIdentifier: string;
    /** A description of the configured audience model association. */
    description?: string;
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateConfiguredTableInput {
    /** The columns of the underlying table that can be used by collaborations or analysis rules. */
    allowedColumns: string[];
    /** The analysis method allowed for the configured tables. DIRECT_QUERY allows SQL queries to be run directly on this table. DIRECT_JOB allows PySpark jobs to be run directly on this table. MULTIPLE allow */
    analysisMethod: 'DIRECT_QUERY' | 'DIRECT_JOB' | 'MULTIPLE';
    /** The name of the configured table. */
    name: string;
    /** A reference to the table being configured. */
    tableReference: {
        glue?: GlueTableReference;
    } | {
        snowflake?: SnowflakeTableReference;
    } | {
        athena?: AthenaTableReference;
    };
    /** A description for the configured table. */
    description?: string;
    /** The analysis methods to enable for the configured table. When configured, you must specify at least two analysis methods. */
    selectedAnalysisMethods?: 'DIRECT_QUERY' | 'DIRECT_JOB'[];
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateConfiguredTableAnalysisRuleInput {
    /** The analysis rule policy that was created for the configured table. */
    analysisRulePolicy: {
        v1?: {
            list?: any;
        } | {
            aggregation?: any;
        } | {
            custom?: any;
        };
    };
    /** The type of analysis rule. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The identifier for the configured table to create the analysis rule for. Currently accepts the configured table ID. */
    configuredTableIdentifier: string;
}
export interface CreateConfiguredTableAssociationInput {
    /** A unique identifier for the configured table to be associated to. Currently accepts a configured table ID. */
    configuredTableIdentifier: string;
    /** 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. */
    membershipIdentifier: string;
    /** The name of the configured table association. This name is used to query the underlying configured table. */
    name: string;
    /** The service will assume this role to access catalog metadata and query the table. */
    roleArn: string;
    /** A description for the configured table association. */
    description?: string;
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateConfiguredTableAssociationAnalysisRuleInput {
    /** The analysis rule policy that was created for the configured table association. */
    analysisRulePolicy: {
        v1?: {
            list?: any;
        } | {
            aggregation?: any;
        } | {
            custom?: any;
        };
    };
    /** The type of analysis rule. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The unique ID for the configured table association. Currently accepts the configured table association ID. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface CreateIdMappingTableInput {
    /** The input reference configuration needed to create the ID mapping table. */
    inputReferenceConfig: IdMappingTableInputReferenceConfig;
    /** The unique identifier of the membership that contains the ID mapping table. */
    membershipIdentifier: string;
    /** A name for the ID mapping table. */
    name: string;
    /** A description of the ID mapping table. */
    description?: string;
    /** 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. */
    kmsKeyArn?: string;
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateIdNamespaceAssociationInput {
    /** The input reference configuration needed to create the ID namespace association. */
    inputReferenceConfig: IdNamespaceAssociationInputReferenceConfig;
    /** The unique identifier of the membership that contains the ID namespace association. */
    membershipIdentifier: string;
    /** The name for the ID namespace association. */
    name: string;
    /** The description of the ID namespace association. */
    description?: string;
    /** The configuration settings for the ID mapping table. */
    idMappingConfig?: IdMappingConfig;
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreateMembershipInput {
    /** The unique ID for the associated collaboration. */
    collaborationIdentifier: string;
    /** An indicator as to whether query logging has been enabled or disabled for the membership. When ENABLED, Clean Rooms logs details about queries run within this collaboration and those logs can be viewe */
    queryLogStatus: 'ENABLED' | 'DISABLED';
    /** The default job result configuration that determines how job results are protected and managed within this membership. This configuration applies to all jobs. */
    defaultJobResultConfiguration?: MembershipProtectedJobResultConfiguration;
    /** The default protected query result configuration as specified by the member who can receive results. */
    defaultResultConfiguration?: MembershipProtectedQueryResultConfiguration;
    /** An indicator as to whether Amazon CloudWatch metrics have been enabled or disabled for the membership. Amazon CloudWatch metrics are only available when the collaboration has metrics enabled. This opt */
    isMetricsEnabled?: boolean;
    /** An indicator as to whether job logging has been enabled or disabled for the collaboration. When ENABLED, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed  */
    jobLogStatus?: 'ENABLED' | 'DISABLED';
    /** The payment responsibilities accepted by the collaboration member. Not required if the collaboration member has the member ability to run queries. Required if the collaboration member doesn't have the */
    paymentConfiguration?: MembershipPaymentConfiguration;
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface CreatePrivacyBudgetTemplateInput {
    /** 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. */
    membershipIdentifier: string;
    /** Specifies your parameters for the privacy budget template. */
    parameters: {
        differentialPrivacy?: DifferentialPrivacyTemplateParametersInput;
    } | {
        accessBudget?: AccessBudgetsPrivacyTemplateParametersInput;
    };
    /** Specifies the type of the privacy budget template. */
    privacyBudgetType: 'DIFFERENTIAL_PRIVACY' | 'ACCESS_BUDGET';
    /** How often the privacy budget refreshes. If you plan to regularly bring new data into the collaboration, you can use CALENDAR_MONTH to automatically get a new privacy budget for the collaboration every */
    autoRefresh?: 'CALENDAR_MONTH' | 'NONE';
    /** 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 acc */
    tags?: Record<string, string>;
}
export interface DeleteAnalysisTemplateInput {
    /** The identifier for the analysis template resource. */
    analysisTemplateIdentifier: string;
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
}
export interface DeleteCollaborationInput {
    /** The identifier for the collaboration. */
    collaborationIdentifier: string;
}
export interface DeleteConfiguredAudienceModelAssociationInput {
    /** A unique identifier of the configured audience model association that you want to delete. */
    configuredAudienceModelAssociationIdentifier: string;
    /** A unique identifier of the membership that contains the audience model association that you want to delete. */
    membershipIdentifier: string;
}
export interface DeleteConfiguredTableInput {
    /** The unique ID for the configured table to delete. */
    configuredTableIdentifier: string;
}
export interface DeleteConfiguredTableAnalysisRuleInput {
    /** The analysis rule type to be deleted. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID. */
    configuredTableIdentifier: string;
}
export interface DeleteConfiguredTableAssociationInput {
    /** The unique ID for the configured table association to be deleted. Currently accepts the configured table ID. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface DeleteConfiguredTableAssociationAnalysisRuleInput {
    /** The type of the analysis rule that you want to delete. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The identiﬁer for the conﬁgured table association that's related to the analysis rule that you want to delete. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface DeleteIdMappingTableInput {
    /** The unique identifier of the ID mapping table that you want to delete. */
    idMappingTableIdentifier: string;
    /** The unique identifier of the membership that contains the ID mapping table that you want to delete. */
    membershipIdentifier: string;
}
export interface DeleteIdNamespaceAssociationInput {
    /** The unique identifier of the ID namespace association that you want to delete. */
    idNamespaceAssociationIdentifier: string;
    /** The unique identifier of the membership that contains the ID namespace association that you want to delete. */
    membershipIdentifier: string;
}
export interface DeleteMemberInput {
    /** The account ID of the member to remove. */
    accountId: string;
    /** The unique identifier for the associated collaboration. */
    collaborationIdentifier: string;
}
export interface DeleteMembershipInput {
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
}
export interface DeletePrivacyBudgetTemplateInput {
    /** 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. */
    membershipIdentifier: string;
    /** A unique identifier for your privacy budget template. */
    privacyBudgetTemplateIdentifier: string;
}
export interface GetAnalysisTemplateInput {
    /** The identifier for the analysis template resource. */
    analysisTemplateIdentifier: string;
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
}
export interface GetCollaborationInput {
    /** The identifier for the collaboration. */
    collaborationIdentifier: string;
}
export interface GetCollaborationAnalysisTemplateInput {
    /** The Amazon Resource Name (ARN) associated with the analysis template within a collaboration. */
    analysisTemplateArn: string;
    /** A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID. */
    collaborationIdentifier: string;
}
export interface GetCollaborationChangeRequestInput {
    /** A unique identifier for the change request to retrieve. */
    changeRequestIdentifier: string;
    /** The identifier of the collaboration that the change request is made against. */
    collaborationIdentifier: string;
}
export interface GetCollaborationConfiguredAudienceModelAssociationInput {
    /** A unique identifier for the collaboration that the configured audience model association belongs to. Accepts a collaboration ID. */
    collaborationIdentifier: string;
    /** A unique identifier for the configured audience model association that you want to retrieve. */
    configuredAudienceModelAssociationIdentifier: string;
}
export interface GetCollaborationIdNamespaceAssociationInput {
    /** The unique identifier of the collaboration that contains the ID namespace association that you want to retrieve. */
    collaborationIdentifier: string;
    /** The unique identifier of the ID namespace association that you want to retrieve. */
    idNamespaceAssociationIdentifier: string;
}
export interface GetCollaborationPrivacyBudgetTemplateInput {
    /** A unique identifier for one of your collaborations. */
    collaborationIdentifier: string;
    /** A unique identifier for one of your privacy budget templates. */
    privacyBudgetTemplateIdentifier: string;
}
export interface GetConfiguredAudienceModelAssociationInput {
    /** A unique identifier for the configured audience model association that you want to retrieve. */
    configuredAudienceModelAssociationIdentifier: string;
    /** A unique identifier for the membership that contains the configured audience model association that you want to retrieve. */
    membershipIdentifier: string;
}
export interface GetConfiguredTableInput {
    /** The unique ID for the configured table to retrieve. */
    configuredTableIdentifier: string;
}
export interface GetConfiguredTableAnalysisRuleInput {
    /** The analysis rule to be retrieved. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The unique identifier for the configured table to retrieve. Currently accepts the configured table ID. */
    configuredTableIdentifier: string;
}
export interface GetConfiguredTableAssociationInput {
    /** The unique ID for the configured table association to retrieve. Currently accepts the configured table ID. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface GetConfiguredTableAssociationAnalysisRuleInput {
    /** The type of analysis rule that you want to retrieve. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The identiﬁer for the conﬁgured table association that's related to the analysis rule. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface GetIdMappingTableInput {
    /** The unique identifier of the ID mapping table identifier that you want to retrieve. */
    idMappingTableIdentifier: string;
    /** The unique identifier of the membership that contains the ID mapping table that you want to retrieve. */
    membershipIdentifier: string;
}
export interface GetIdNamespaceAssociationInput {
    /** The unique identifier of the ID namespace association that you want to retrieve. */
    idNamespaceAssociationIdentifier: string;
    /** The unique identifier of the membership that contains the ID namespace association that you want to retrieve. */
    membershipIdentifier: string;
}
export interface GetMembershipInput {
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
}
export interface GetPrivacyBudgetTemplateInput {
    /** 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. */
    membershipIdentifier: string;
    /** A unique identifier for your privacy budget template. */
    privacyBudgetTemplateIdentifier: string;
}
export interface GetProtectedJobInput {
    /** The identifier for a membership in a protected job instance. */
    membershipIdentifier: string;
    /** The identifier for the protected job instance. */
    protectedJobIdentifier: string;
}
export interface GetProtectedQueryInput {
    /** The identifier for a membership in a protected query instance. */
    membershipIdentifier: string;
    /** The identifier for a protected query instance. */
    protectedQueryIdentifier: string;
}
export interface GetSchemaInput {
    /** A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. */
    collaborationIdentifier: string;
    /** The name of the relation to retrieve the schema for. */
    name: string;
}
export interface GetSchemaAnalysisRuleInput {
    /** A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. */
    collaborationIdentifier: string;
    /** The name of the schema to retrieve the analysis rule for. */
    name: string;
    /** 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. */
    type: 'AGGREGATION' | 'LIST' | 'CUSTOM' | 'ID_MAPPING_TABLE';
}
export interface ListAnalysisTemplatesInput {
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationAnalysisTemplatesInput {
    /** A unique identifier for the collaboration that the analysis templates belong to. Currently accepts collaboration ID. */
    collaborationIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationChangeRequestsInput {
    /** The identifier of the collaboration that the change request is made against. */
    collaborationIdentifier: string;
    /** The maximum number of results that are returned for an API request call. */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
    /** A filter to only return change requests with the specified status. */
    status?: 'PENDING' | 'APPROVED' | 'CANCELLED' | 'DENIED' | 'COMMITTED';
}
export interface ListCollaborationConfiguredAudienceModelAssociationsInput {
    /** A unique identifier for the collaboration that the configured audience model association belongs to. Accepts a collaboration ID. */
    collaborationIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationIdNamespaceAssociationsInput {
    /** The unique identifier of the collaboration that contains the ID namespace associations that you want to retrieve. */
    collaborationIdentifier: string;
    /** 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; */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationPrivacyBudgetsInput {
    /** A unique identifier for one of your collaborations. */
    collaborationIdentifier: string;
    /** Specifies the type of the privacy budget. */
    privacyBudgetType: 'DIFFERENTIAL_PRIVACY' | 'ACCESS_BUDGET';
    /** The Amazon Resource Name (ARN) of the Configured Table Association (ConfiguredTableAssociation) used to filter privacy budgets. */
    accessBudgetResourceArn?: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationPrivacyBudgetTemplatesInput {
    /** A unique identifier for one of your collaborations. */
    collaborationIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListCollaborationsInput {
    /** 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` valu */
    maxResults?: number;
    /** The caller's status in a collaboration. */
    memberStatus?: 'INVITED' | 'ACTIVE';
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListConfiguredAudienceModelAssociationsInput {
    /** A unique identifier for a membership that contains the configured audience model associations that you want to retrieve. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListConfiguredTableAssociationsInput {
    /** A unique identifier for the membership to list configured table associations for. Currently accepts the membership ID. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListConfiguredTablesInput {
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListIdMappingTablesInput {
    /** The unique identifier of the membership that contains the ID mapping tables that you want to view. */
    membershipIdentifier: string;
    /** 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. */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListIdNamespaceAssociationsInput {
    /** The unique identifier of the membership that contains the ID namespace association that you want to view. */
    membershipIdentifier: string;
    /** 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. */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListMembersInput {
    /** The identifier of the collaboration in which the members are listed. */
    collaborationIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListMembershipsInput {
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
    /** A filter which will return only memberships in the specified status. */
    status?: 'ACTIVE' | 'REMOVED' | 'COLLABORATION_DELETED';
}
export interface ListPrivacyBudgetsInput {
    /** 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. */
    membershipIdentifier: string;
    /** The privacy budget type. */
    privacyBudgetType: 'DIFFERENTIAL_PRIVACY' | 'ACCESS_BUDGET';
    /** The Amazon Resource Name (ARN) of the access budget resource to filter privacy budgets by. */
    accessBudgetResourceArn?: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListPrivacyBudgetTemplatesInput {
    /** 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. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
}
export interface ListProtectedJobsInput {
    /** The identifier for the membership in the collaboration. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
    /** A filter on the status of the protected job. */
    status?: 'SUBMITTED' | 'STARTED' | 'CANCELLED' | 'CANCELLING' | 'FAILED' | 'SUCCESS';
}
export interface ListProtectedQueriesInput {
    /** The identifier for the membership in the collaboration. */
    membershipIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
    /** A filter on the status of the protected query. */
    status?: 'SUBMITTED' | 'STARTED' | 'CANCELLED' | 'CANCELLING' | 'FAILED' | 'SUCCESS' | 'TIMED_OUT';
}
export interface ListSchemasInput {
    /** A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. */
    collaborationIdentifier: string;
    /** 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` valu */
    maxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    nextToken?: string;
    /** If present, filter schemas by schema type. */
    schemaType?: 'TABLE' | 'ID_MAPPING_TABLE';
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) associated with the resource you want to list tags on. */
    resourceArn: string;
}
export interface PopulateIdMappingTableInput {
    /** The unique identifier of the ID mapping table that you want to populate. */
    idMappingTableIdentifier: string;
    /** The unique identifier of the membership that contains the ID mapping table that you want to populate. */
    membershipIdentifier: string;
    /** The job type of the rule-based ID mapping job. Valid values include: INCREMENTAL: Processes only new or changed data since the last job run. This is the default job type if the ID mapping workflow was */
    jobType?: 'BATCH' | 'INCREMENTAL' | 'DELETE_ONLY';
}
export interface PreviewPrivacyImpactInput {
    /** A unique identifier for one of your memberships for a collaboration. Accepts a membership ID. */
    membershipIdentifier: string;
    /** Specifies the desired epsilon and noise parameters to preview. */
    parameters: {
        differentialPrivacy?: DifferentialPrivacyPreviewParametersInput;
    };
}
export interface StartProtectedJobInput {
    /** The job parameters. */
    jobParameters: ProtectedJobParameters;
    /** A unique identifier for the membership to run this job against. Currently accepts a membership ID. */
    membershipIdentifier: string;
    /** The type of protected job to start. */
    type: 'PYSPARK';
    /** The compute configuration for the protected job. */
    computeConfiguration?: {
        worker?: ProtectedJobWorkerComputeConfiguration;
    };
    /** The details needed to write the job results. */
    resultConfiguration?: ProtectedJobResultConfigurationInput;
}
export interface StartProtectedQueryInput {
    /** A unique identifier for the membership to run this query against. Currently accepts a membership ID. */
    membershipIdentifier: string;
    /** The protected SQL query parameters. */
    sqlParameters: ProtectedQuerySQLParameters;
    /** The type of the protected query to be started. */
    type: 'SQL';
    /** The compute configuration for the protected query. */
    computeConfiguration?: {
        worker?: WorkerComputeConfiguration;
    };
    /** The details needed to write the query results. */
    resultConfiguration?: ProtectedQueryResultConfiguration;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) associated with the resource you want to tag. */
    resourceArn: string;
    /** A map of objects specifying each key name and value. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) associated with the resource you want to remove the tag from. */
    resourceArn: string;
    /** A list of key names of tags to be removed. */
    tagKeys: string[];
}
export interface UpdateAnalysisTemplateInput {
    /** The identifier for the analysis template resource. */
    analysisTemplateIdentifier: string;
    /** The identifier for a membership resource. */
    membershipIdentifier: string;
    /** A new description for the analysis template. */
    description?: string;
}
export interface UpdateCollaborationInput {
    /** The identifier for the collaboration. */
    collaborationIdentifier: string;
    /** The analytics engine. After July 16, 2025, the CLEAN_ROOMS_SQL parameter will no longer be available. */
    analyticsEngine?: 'SPARK' | 'CLEAN_ROOMS_SQL';
    /** A description of the collaboration. */
    description?: string;
    /** A human-readable identifier provided by the collaboration owner. Display names are not unique. */
    name?: string;
}
export interface UpdateCollaborationChangeRequestInput {
    /** 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) */
    action: 'APPROVE' | 'DENY' | 'CANCEL' | 'COMMIT';
    /** The unique identifier of the specific change request to be updated within the collaboration. */
    changeRequestIdentifier: string;
    /** The unique identifier of the collaboration that contains the change request to be updated. */
    collaborationIdentifier: string;
}
export interface UpdateConfiguredAudienceModelAssociationInput {
    /** A unique identifier for the configured audience model association that you want to update. */
    configuredAudienceModelAssociationIdentifier: string;
    /** A unique identifier of the membership that contains the configured audience model association that you want to update. */
    membershipIdentifier: string;
    /** A new description for the configured audience model association. */
    description?: string;
    /** A new name for the configured audience model association. */
    name?: string;
}
export interface UpdateConfiguredTableInput {
    /** The identifier for the configured table to update. Currently accepts the configured table ID. */
    configuredTableIdentifier: string;
    /** The columns of the underlying table that can be used by collaborations or analysis rules. */
    allowedColumns?: string[];
    /** The analysis method for the configured table. DIRECT_QUERY allows SQL queries to be run directly on this table. DIRECT_JOB allows PySpark jobs to be run directly on this table. MULTIPLE allows both SQ */
    analysisMethod?: 'DIRECT_QUERY' | 'DIRECT_JOB' | 'MULTIPLE';
    /** A new description for the configured table. */
    description?: string;
    /** A new name for the configured table. */
    name?: string;
    /** The selected analysis methods for the table configuration update. */
    selectedAnalysisMethods?: 'DIRECT_QUERY' | 'DIRECT_JOB'[];
    tableReference?: {
        glue?: GlueTableReference;
    } | {
        snowflake?: SnowflakeTableReference;
    } | {
        athena?: AthenaTableReference;
    };
}
export interface UpdateConfiguredTableAnalysisRuleInput {
    /** The new analysis rule policy for the configured table analysis rule. */
    analysisRulePolicy: {
        v1?: {
            list?: any;
        } | {
            aggregation?: any;
        } | {
            custom?: any;
        };
    };
    /** The analysis rule type to be updated. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID. */
    configuredTableIdentifier: string;
}
export interface UpdateConfiguredTableAssociationInput {
    /** The unique identifier for the configured table association to update. Currently accepts the configured table association ID. */
    configuredTableAssociationIdentifier: string;
    /** The unique ID for the membership that the configured table association belongs to. */
    membershipIdentifier: string;
    /** A new description for the configured table association. */
    description?: string;
    /** The service will assume this role to access catalog metadata and query the table. */
    roleArn?: string;
}
export interface UpdateConfiguredTableAssociationAnalysisRuleInput {
    /** The updated analysis rule policy for the conﬁgured table association. */
    analysisRulePolicy: {
        v1?: {
            list?: any;
        } | {
            aggregation?: any;
        } | {
            custom?: any;
        };
    };
    /** The analysis rule type that you want to update. */
    analysisRuleType: 'AGGREGATION' | 'LIST' | 'CUSTOM';
    /** The identifier for the configured table association to update. */
    configuredTableAssociationIdentifier: string;
    /** A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. */
    membershipIdentifier: string;
}
export interface UpdateIdMappingTableInput {
    /** The unique identifier of the ID mapping table that you want to update. */
    idMappingTableIdentifier: string;
    /** The unique identifier of the membership that contains the ID mapping table that you want to update. */
    membershipIdentifier: string;
    /** A new description for the ID mapping table. */
    description?: string;
    /** The Amazon Resource Name (ARN) of the Amazon Web Services KMS key. */
    kmsKeyArn?: string;
}
export interface UpdateIdNamespaceAssociationInput {
    /** The unique identifier of the ID namespace association that you want to update. */
    idNamespaceAssociationIdentifier: string;
    /** The unique identifier of the membership that contains the ID namespace association that you want to update. */
    membershipIdentifier: string;
    /** A new description for the ID namespace association. */
    description?: string;
    /** The configuration settings for the ID mapping table. */
    idMappingConfig?: IdMappingConfig;
    /** A new name for the ID namespace association. */
    name?: string;
}
export interface UpdateMembershipInput {
    /** The unique identifier of the membership. */
    membershipIdentifier: string;
    /** The default job result configuration. */
    defaultJobResultConfiguration?: MembershipProtectedJobResultConfiguration;
    /** The default protected query result configuration as specified by the member who can receive results. */
    defaultResultConfiguration?: MembershipProtectedQueryResultConfiguration;
    /** An indicator as to whether job logging has been enabled or disabled for the collaboration. When ENABLED, Clean Rooms logs details about jobs run within this collaboration and those logs can be viewed  */
    jobLogStatus?: 'ENABLED' | 'DISABLED';
    /** An indicator as to whether query logging has been enabled or disabled for the membership. When ENABLED, Clean Rooms logs details about queries run within this collaboration and those logs can be viewe */
    queryLogStatus?: 'ENABLED' | 'DISABLED';
}
export interface UpdatePrivacyBudgetTemplateInput {
    /** 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. */
    membershipIdentifier: string;
    /** A unique identifier for your privacy budget template that you want to update. */
    privacyBudgetTemplateIdentifier: string;
    /** Specifies the type of the privacy budget template. */
    privacyBudgetType: 'DIFFERENTIAL_PRIVACY' | 'ACCESS_BUDGET';
    /** Specifies the epsilon and noise parameters for the privacy budget template. */
    parameters?: {
        differentialPrivacy?: DifferentialPrivacyTemplateUpdateParameters;
    } | {
        accessBudget?: AccessBudgetsPrivacyTemplateUpdateParameters;
    };
}
export interface UpdateProtectedJobInput {
    /** The identifier for a member of a protected job instance. */
    membershipIdentifier: string;
    /** The identifier of the protected job to update. */
    protectedJobIdentifier: string;
    /** The target status of a protected job. Used to update the execution status of a currently running job. */
    targetStatus: 'CANCELLED';
}
export interface UpdateProtectedQueryInput {
    /** The identifier for a member of a protected query instance. */
    membershipIdentifier: string;
    /** The identifier for a protected query instance. */
    protectedQueryIdentifier: string;
    /** The target status of a query. Used to update the execution status of a currently running query. */
    targetStatus: 'CANCELLED';
}
/** CleanRooms service binding for Step Functions SDK integrations. */
export declare class CleanRooms {
    constructor();
    batchGetCollaborationAnalysisTemplate<T>(params: BatchGetCollaborationAnalysisTemplateInput): Promise<T>;
    batchGetSchema<T>(params: BatchGetSchemaInput): Promise<T>;
    batchGetSchemaAnalysisRule<T>(params: BatchGetSchemaAnalysisRuleInput): Promise<T>;
    createAnalysisTemplate<T>(params: CreateAnalysisTemplateInput): Promise<T>;
    createCollaboration<T>(params: CreateCollaborationInput): Promise<T>;
    createCollaborationChangeRequest<T>(params: CreateCollaborationChangeRequestInput): Promise<T>;
    createConfiguredAudienceModelAssociation<T>(params: CreateConfiguredAudienceModelAssociationInput): Promise<T>;
    createConfiguredTable<T>(params: CreateConfiguredTableInput): Promise<T>;
    createConfiguredTableAnalysisRule<T>(params: CreateConfiguredTableAnalysisRuleInput): Promise<T>;
    createConfiguredTableAssociation<T>(params: CreateConfiguredTableAssociationInput): Promise<T>;
    createConfiguredTableAssociationAnalysisRule<T>(params: CreateConfiguredTableAssociationAnalysisRuleInput): Promise<T>;
    createIdMappingTable<T>(params: CreateIdMappingTableInput): Promise<T>;
    createIdNamespaceAssociation<T>(params: CreateIdNamespaceAssociationInput): Promise<T>;
    createMembership<T>(params: CreateMembershipInput): Promise<T>;
    createPrivacyBudgetTemplate<T>(params: CreatePrivacyBudgetTemplateInput): Promise<T>;
    deleteAnalysisTemplate<T>(params: DeleteAnalysisTemplateInput): Promise<T>;
    deleteCollaboration<T>(params: DeleteCollaborationInput): Promise<T>;
    deleteConfiguredAudienceModelAssociation<T>(params: DeleteConfiguredAudienceModelAssociationInput): Promise<T>;
    deleteConfiguredTable<T>(params: DeleteConfiguredTableInput): Promise<T>;
    deleteConfiguredTableAnalysisRule<T>(params: DeleteConfiguredTableAnalysisRuleInput): Promise<T>;
    deleteConfiguredTableAssociation<T>(params: DeleteConfiguredTableAssociationInput): Promise<T>;
    deleteConfiguredTableAssociationAnalysisRule<T>(params: DeleteConfiguredTableAssociationAnalysisRuleInput): Promise<T>;
    deleteIdMappingTable<T>(params: DeleteIdMappingTableInput): Promise<T>;
    deleteIdNamespaceAssociation<T>(params: DeleteIdNamespaceAssociationInput): Promise<T>;
    deleteMember<T>(params: DeleteMemberInput): Promise<T>;
    deleteMembership<T>(params: DeleteMembershipInput): Promise<T>;
    deletePrivacyBudgetTemplate<T>(params: DeletePrivacyBudgetTemplateInput): Promise<T>;
    getAnalysisTemplate<T>(params: GetAnalysisTemplateInput): Promise<T>;
    getCollaboration<T>(params: GetCollaborationInput): Promise<T>;
    getCollaborationAnalysisTemplate<T>(params: GetCollaborationAnalysisTemplateInput): Promise<T>;
    getCollaborationChangeRequest<T>(params: GetCollaborationChangeRequestInput): Promise<T>;
    getCollaborationConfiguredAudienceModelAssociation<T>(params: GetCollaborationConfiguredAudienceModelAssociationInput): Promise<T>;
    getCollaborationIdNamespaceAssociation<T>(params: GetCollaborationIdNamespaceAssociationInput): Promise<T>;
    getCollaborationPrivacyBudgetTemplate<T>(params: GetCollaborationPrivacyBudgetTemplateInput): Promise<T>;
    getConfiguredAudienceModelAssociation<T>(params: GetConfiguredAudienceModelAssociationInput): Promise<T>;
    getConfiguredTable<T>(params: GetConfiguredTableInput): Promise<T>;
    getConfiguredTableAnalysisRule<T>(params: GetConfiguredTableAnalysisRuleInput): Promise<T>;
    getConfiguredTableAssociation<T>(params: GetConfiguredTableAssociationInput): Promise<T>;
    getConfiguredTableAssociationAnalysisRule<T>(params: GetConfiguredTableAssociationAnalysisRuleInput): Promise<T>;
    getIdMappingTable<T>(params: GetIdMappingTableInput): Promise<T>;
    getIdNamespaceAssociation<T>(params: GetIdNamespaceAssociationInput): Promise<T>;
    getMembership<T>(params: GetMembershipInput): Promise<T>;
    getPrivacyBudgetTemplate<T>(params: GetPrivacyBudgetTemplateInput): Promise<T>;
    getProtectedJob<T>(params: GetProtectedJobInput): Promise<T>;
    getProtectedQuery<T>(params: GetProtectedQueryInput): Promise<T>;
    getSchema<T>(params: GetSchemaInput): Promise<T>;
    getSchemaAnalysisRule<T>(params: GetSchemaAnalysisRuleInput): Promise<T>;
    listAnalysisTemplates<T>(params: ListAnalysisTemplatesInput): Promise<T>;
    listCollaborationAnalysisTemplates<T>(params: ListCollaborationAnalysisTemplatesInput): Promise<T>;
    listCollaborationChangeRequests<T>(params: ListCollaborationChangeRequestsInput): Promise<T>;
    listCollaborationConfiguredAudienceModelAssociations<T>(params: ListCollaborationConfiguredAudienceModelAssociationsInput): Promise<T>;
    listCollaborationIdNamespaceAssociations<T>(params: ListCollaborationIdNamespaceAssociationsInput): Promise<T>;
    listCollaborationPrivacyBudgets<T>(params: ListCollaborationPrivacyBudgetsInput): Promise<T>;
    listCollaborationPrivacyBudgetTemplates<T>(params: ListCollaborationPrivacyBudgetTemplatesInput): Promise<T>;
    listCollaborations<T>(params: ListCollaborationsInput): Promise<T>;
    listConfiguredAudienceModelAssociations<T>(params: ListConfiguredAudienceModelAssociationsInput): Promise<T>;
    listConfiguredTableAssociations<T>(params: ListConfiguredTableAssociationsInput): Promise<T>;
    listConfiguredTables<T>(params: ListConfiguredTablesInput): Promise<T>;
    listIdMappingTables<T>(params: ListIdMappingTablesInput): Promise<T>;
    listIdNamespaceAssociations<T>(params: ListIdNamespaceAssociationsInput): Promise<T>;
    listMembers<T>(params: ListMembersInput): Promise<T>;
    listMemberships<T>(params: ListMembershipsInput): Promise<T>;
    listPrivacyBudgets<T>(params: ListPrivacyBudgetsInput): Promise<T>;
    listPrivacyBudgetTemplates<T>(params: ListPrivacyBudgetTemplatesInput): Promise<T>;
    listProtectedJobs<T>(params: ListProtectedJobsInput): Promise<T>;
    listProtectedQueries<T>(params: ListProtectedQueriesInput): Promise<T>;
    listSchemas<T>(params: ListSchemasInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    populateIdMappingTable<T>(params: PopulateIdMappingTableInput): Promise<T>;
    previewPrivacyImpact<T>(params: PreviewPrivacyImpactInput): Promise<T>;
    startProtectedJob<T>(params: StartProtectedJobInput): Promise<T>;
    startProtectedQuery<T>(params: StartProtectedQueryInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAnalysisTemplate<T>(params: UpdateAnalysisTemplateInput): Promise<T>;
    updateCollaboration<T>(params: UpdateCollaborationInput): Promise<T>;
    updateCollaborationChangeRequest<T>(params: UpdateCollaborationChangeRequestInput): Promise<T>;
    updateConfiguredAudienceModelAssociation<T>(params: UpdateConfiguredAudienceModelAssociationInput): Promise<T>;
    updateConfiguredTable<T>(params: UpdateConfiguredTableInput): Promise<T>;
    updateConfiguredTableAnalysisRule<T>(params: UpdateConfiguredTableAnalysisRuleInput): Promise<T>;
    updateConfiguredTableAssociation<T>(params: UpdateConfiguredTableAssociationInput): Promise<T>;
    updateConfiguredTableAssociationAnalysisRule<T>(params: UpdateConfiguredTableAssociationAnalysisRuleInput): Promise<T>;
    updateIdMappingTable<T>(params: UpdateIdMappingTableInput): Promise<T>;
    updateIdNamespaceAssociation<T>(params: UpdateIdNamespaceAssociationInput): Promise<T>;
    updateMembership<T>(params: UpdateMembershipInput): Promise<T>;
    updatePrivacyBudgetTemplate<T>(params: UpdatePrivacyBudgetTemplateInput): Promise<T>;
    updateProtectedJob<T>(params: UpdateProtectedJobInput): Promise<T>;
    updateProtectedQuery<T>(params: UpdateProtectedQueryInput): Promise<T>;
}
//# sourceMappingURL=CleanRooms.d.ts.map