From 85cd5994d4af59fceffe2a53859d5443835c097e Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 14 Nov 2023 19:21:14 +0000 Subject: [PATCH] feat(client-cleanrooms): This feature provides the ability for the collaboration creator to configure either the member who can run queries or a different member in the collaboration to be billed for query compute costs. --- .../src/commands/BatchGetSchemaCommand.ts | 2 +- .../commands/CreateCollaborationCommand.ts | 10 + .../src/commands/CreateMembershipCommand.ts | 10 + .../src/commands/GetMembershipCommand.ts | 5 + .../src/commands/GetSchemaCommand.ts | 2 +- .../src/commands/ListMembersCommand.ts | 5 + .../src/commands/ListMembershipsCommand.ts | 5 + .../src/commands/ListSchemasCommand.ts | 4 +- .../src/commands/UpdateMembershipCommand.ts | 5 + .../client-cleanrooms/src/models/models_0.ts | 212 ++++++++++++++---- .../src/protocols/Aws_restJson1.ts | 25 +++ .../sdk-codegen/aws-models/cleanrooms.json | 173 +++++++++++--- 12 files changed, 379 insertions(+), 79 deletions(-) diff --git a/clients/client-cleanrooms/src/commands/BatchGetSchemaCommand.ts b/clients/client-cleanrooms/src/commands/BatchGetSchemaCommand.ts index 3265c83651e9..0216ab804946 100644 --- a/clients/client-cleanrooms/src/commands/BatchGetSchemaCommand.ts +++ b/clients/client-cleanrooms/src/commands/BatchGetSchemaCommand.ts @@ -78,7 +78,7 @@ export interface BatchGetSchemaCommandOutput extends BatchGetSchemaOutput, __Met * // description: "STRING_VALUE", // required * // createTime: new Date("TIMESTAMP"), // required * // updateTime: new Date("TIMESTAMP"), // required - * // type: "STRING_VALUE", // required + * // type: "TABLE", // required * // }, * // ], * // errors: [ // BatchGetSchemaErrorList // required diff --git a/clients/client-cleanrooms/src/commands/CreateCollaborationCommand.ts b/clients/client-cleanrooms/src/commands/CreateCollaborationCommand.ts index 693213cb9bae..48dd0461c7a3 100644 --- a/clients/client-cleanrooms/src/commands/CreateCollaborationCommand.ts +++ b/clients/client-cleanrooms/src/commands/CreateCollaborationCommand.ts @@ -52,6 +52,11 @@ export interface CreateCollaborationCommandOutput extends CreateCollaborationOut * "STRING_VALUE", * ], * displayName: "STRING_VALUE", // required + * paymentConfiguration: { // PaymentConfiguration + * queryCompute: { // QueryComputePaymentConfig + * isResponsible: true || false, // required + * }, + * }, * }, * ], * name: "STRING_VALUE", // required @@ -70,6 +75,11 @@ export interface CreateCollaborationCommandOutput extends CreateCollaborationOut * tags: { // TagMap * "": "STRING_VALUE", * }, + * creatorPaymentConfiguration: { + * queryCompute: { + * isResponsible: true || false, // required + * }, + * }, * }; * const command = new CreateCollaborationCommand(input); * const response = await client.send(command); diff --git a/clients/client-cleanrooms/src/commands/CreateMembershipCommand.ts b/clients/client-cleanrooms/src/commands/CreateMembershipCommand.ts index ad57b29c224c..d8c90a5e7421 100644 --- a/clients/client-cleanrooms/src/commands/CreateMembershipCommand.ts +++ b/clients/client-cleanrooms/src/commands/CreateMembershipCommand.ts @@ -61,6 +61,11 @@ export interface CreateMembershipCommandOutput extends CreateMembershipOutput, _ * }, * roleArn: "STRING_VALUE", * }, + * paymentConfiguration: { // MembershipPaymentConfiguration + * queryCompute: { // MembershipQueryComputePaymentConfig + * isResponsible: true || false, // required + * }, + * }, * }; * const command = new CreateMembershipCommand(input); * const response = await client.send(command); @@ -90,6 +95,11 @@ export interface CreateMembershipCommandOutput extends CreateMembershipOutput, _ * // }, * // roleArn: "STRING_VALUE", * // }, + * // paymentConfiguration: { // MembershipPaymentConfiguration + * // queryCompute: { // MembershipQueryComputePaymentConfig + * // isResponsible: true || false, // required + * // }, + * // }, * // }, * // }; * diff --git a/clients/client-cleanrooms/src/commands/GetMembershipCommand.ts b/clients/client-cleanrooms/src/commands/GetMembershipCommand.ts index 201f7935ae18..9a2c0401e7af 100644 --- a/clients/client-cleanrooms/src/commands/GetMembershipCommand.ts +++ b/clients/client-cleanrooms/src/commands/GetMembershipCommand.ts @@ -75,6 +75,11 @@ export interface GetMembershipCommandOutput extends GetMembershipOutput, __Metad * // }, * // roleArn: "STRING_VALUE", * // }, + * // paymentConfiguration: { // MembershipPaymentConfiguration + * // queryCompute: { // MembershipQueryComputePaymentConfig + * // isResponsible: true || false, // required + * // }, + * // }, * // }, * // }; * diff --git a/clients/client-cleanrooms/src/commands/GetSchemaCommand.ts b/clients/client-cleanrooms/src/commands/GetSchemaCommand.ts index 74a7b484ef08..23495b6faee5 100644 --- a/clients/client-cleanrooms/src/commands/GetSchemaCommand.ts +++ b/clients/client-cleanrooms/src/commands/GetSchemaCommand.ts @@ -75,7 +75,7 @@ export interface GetSchemaCommandOutput extends GetSchemaOutput, __MetadataBeare * // description: "STRING_VALUE", // required * // createTime: new Date("TIMESTAMP"), // required * // updateTime: new Date("TIMESTAMP"), // required - * // type: "STRING_VALUE", // required + * // type: "TABLE", // required * // }, * // }; * diff --git a/clients/client-cleanrooms/src/commands/ListMembersCommand.ts b/clients/client-cleanrooms/src/commands/ListMembersCommand.ts index 00ba448c3188..1b08ee158164 100644 --- a/clients/client-cleanrooms/src/commands/ListMembersCommand.ts +++ b/clients/client-cleanrooms/src/commands/ListMembersCommand.ts @@ -65,6 +65,11 @@ export interface ListMembersCommandOutput extends ListMembersOutput, __MetadataB * // updateTime: new Date("TIMESTAMP"), // required * // membershipId: "STRING_VALUE", * // membershipArn: "STRING_VALUE", + * // paymentConfiguration: { // PaymentConfiguration + * // queryCompute: { // QueryComputePaymentConfig + * // isResponsible: true || false, // required + * // }, + * // }, * // }, * // ], * // }; diff --git a/clients/client-cleanrooms/src/commands/ListMembershipsCommand.ts b/clients/client-cleanrooms/src/commands/ListMembershipsCommand.ts index 854669d6b136..646c4215a368 100644 --- a/clients/client-cleanrooms/src/commands/ListMembershipsCommand.ts +++ b/clients/client-cleanrooms/src/commands/ListMembershipsCommand.ts @@ -68,6 +68,11 @@ export interface ListMembershipsCommandOutput extends ListMembershipsOutput, __M * // memberAbilities: [ // MemberAbilities // required * // "STRING_VALUE", * // ], + * // paymentConfiguration: { // MembershipPaymentConfiguration + * // queryCompute: { // MembershipQueryComputePaymentConfig + * // isResponsible: true || false, // required + * // }, + * // }, * // }, * // ], * // }; diff --git a/clients/client-cleanrooms/src/commands/ListSchemasCommand.ts b/clients/client-cleanrooms/src/commands/ListSchemasCommand.ts index 557567135e43..52c09651464a 100644 --- a/clients/client-cleanrooms/src/commands/ListSchemasCommand.ts +++ b/clients/client-cleanrooms/src/commands/ListSchemasCommand.ts @@ -46,7 +46,7 @@ export interface ListSchemasCommandOutput extends ListSchemasOutput, __MetadataB * const client = new CleanRoomsClient(config); * const input = { // ListSchemasInput * collaborationIdentifier: "STRING_VALUE", // required - * schemaType: "STRING_VALUE", + * schemaType: "TABLE", * nextToken: "STRING_VALUE", * maxResults: Number("int"), * }; @@ -56,7 +56,7 @@ export interface ListSchemasCommandOutput extends ListSchemasOutput, __MetadataB * // schemaSummaries: [ // SchemaSummaryList // required * // { // SchemaSummary * // name: "STRING_VALUE", // required - * // type: "STRING_VALUE", // required + * // type: "TABLE", // required * // creatorAccountId: "STRING_VALUE", // required * // createTime: new Date("TIMESTAMP"), // required * // updateTime: new Date("TIMESTAMP"), // required diff --git a/clients/client-cleanrooms/src/commands/UpdateMembershipCommand.ts b/clients/client-cleanrooms/src/commands/UpdateMembershipCommand.ts index 49a4b553c2f0..065c36685c3e 100644 --- a/clients/client-cleanrooms/src/commands/UpdateMembershipCommand.ts +++ b/clients/client-cleanrooms/src/commands/UpdateMembershipCommand.ts @@ -86,6 +86,11 @@ export interface UpdateMembershipCommandOutput extends UpdateMembershipOutput, _ * // }, * // roleArn: "STRING_VALUE", * // }, + * // paymentConfiguration: { // MembershipPaymentConfiguration + * // queryCompute: { // MembershipQueryComputePaymentConfig + * // isResponsible: true || false, // required + * // }, + * // }, * // }, * // }; * diff --git a/clients/client-cleanrooms/src/models/models_0.ts b/clients/client-cleanrooms/src/models/models_0.ts index df852070350d..9a27e4d2ac52 100644 --- a/clients/client-cleanrooms/src/models/models_0.ts +++ b/clients/client-cleanrooms/src/models/models_0.ts @@ -1499,6 +1499,46 @@ export const MemberAbility = { */ export type MemberAbility = (typeof MemberAbility)[keyof typeof MemberAbility]; +/** + * @public + *

An object + * representing the collaboration member's payment responsibilities set by the collaboration + * creator for query compute costs.

+ */ +export interface QueryComputePaymentConfig { + /** + * @public + *

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 (FALSE).

+ *

Exactly one member can be configured to pay for query compute costs. An error is + * returned if the collaboration creator sets a TRUE value for more than one + * member in the collaboration.

+ *

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. An error is returned if + * the collaboration creator sets a FALSE value for the member who can + * query.

+ */ + isResponsible: boolean | undefined; +} + +/** + * @public + *

An object + * representing the collaboration member's payment responsibilities set by the collaboration + * creator.

+ */ +export interface PaymentConfiguration { + /** + * @public + *

The collaboration + * member's payment responsibilities set by the collaboration creator for query compute + * costs.

+ */ + queryCompute: QueryComputePaymentConfig | undefined; +} + /** * @public *

The settings for client-side encryption for cryptographic computing.

@@ -1506,30 +1546,38 @@ export type MemberAbility = (typeof MemberAbility)[keyof typeof MemberAbility]; export interface DataEncryptionMetadata { /** * @public - *

Indicates whether encrypted tables can contain cleartext data (true) or are to - * cryptographically process every column (false).

+ *

Indicates whether encrypted tables can contain cleartext data + * (TRUE) + * or are to cryptographically process every column + * (FALSE).

*/ allowCleartext: boolean | undefined; /** * @public - *

Indicates whether Fingerprint columns can contain duplicate entries (true) or are to - * contain only non-repeated values (false).

+ *

Indicates whether Fingerprint columns can contain duplicate entries + * (TRUE) + * or are to contain only non-repeated values + * (FALSE).

*/ allowDuplicates: boolean | undefined; /** * @public *

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).

+ * a different name + * (TRUE) + * or can only be joined on Fingerprint columns of the same name + * (FALSE).

*/ allowJoinsOnColumnsWithDifferentNames: boolean | undefined; /** * @public - *

Indicates whether NULL values are to be copied as NULL to encrypted tables (true) or - * cryptographically processed (false).

+ *

Indicates whether NULL values are to be copied as NULL to encrypted tables + * (TRUE) + * or cryptographically processed + * (FALSE).

*/ preserveNulls: boolean | undefined; } @@ -1557,6 +1605,16 @@ export interface MemberSpecification { *

The member's display name.

*/ displayName: string | undefined; + + /** + * @public + *

The collaboration + * member'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 member who can query is the default payer.

+ */ + paymentConfiguration?: PaymentConfiguration; } /** @@ -1630,6 +1688,15 @@ export interface CreateCollaborationInput { * to this resource.

*/ tags?: Record; + + /** + * @public + *

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 member who can query is the default payer.

+ */ + creatorPaymentConfiguration?: PaymentConfiguration; } /** @@ -2173,8 +2240,8 @@ export interface MemberSummary { /** * @public - *

The status of the member. Valid values are `INVITED`, `ACTIVE`, `LEFT`, and - * `REMOVED`.

+ *

The status of the member. + *

*/ status: MemberStatus | undefined; @@ -2213,6 +2280,14 @@ export interface MemberSummary { *

The unique ARN for the member's associated membership, if present.

*/ membershipArn?: string; + + /** + * @public + *

The collaboration + * member's payment responsibilities set by the collaboration creator. + *

+ */ + paymentConfiguration: PaymentConfiguration | undefined; } /** @@ -3411,8 +3486,7 @@ export interface ProtectedQueryS3OutputConfiguration { /** * @public - *

Contains - * configurations for protected query results.

+ *

Contains configurations for protected query results.

*/ export type MembershipProtectedQueryOutputConfiguration = | MembershipProtectedQueryOutputConfiguration.S3Member @@ -3452,26 +3526,69 @@ export namespace MembershipProtectedQueryOutputConfiguration { /** * @public - *

Contains - * configurations for protected query results.

+ *

Contains configurations for protected query results.

*/ export interface MembershipProtectedQueryResultConfiguration { /** * @public - *

Configuration for - * protected query results.

+ *

Configuration for protected query results.

*/ outputConfiguration: MembershipProtectedQueryOutputConfiguration | undefined; /** * @public - *

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.

+ *

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; } +/** + * @public + *

An object + * representing the payment responsibilities accepted by the collaboration member for query + * compute costs.

+ */ +export interface MembershipQueryComputePaymentConfig { + /** + * @public + *

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 anyone to pay for query compute costs, + * then the member who can query is the default payer.

+ *

An error message is returned for the following reasons:

+ *
    + *
  • + *

    If you set the value to FALSE but you are responsible to pay for + * query compute costs.

    + *
  • + *
  • + *

    If you set the value to TRUE but you are not responsible to pay for + * query compute costs.

    + *
  • + *
+ */ + isResponsible: boolean | undefined; +} + +/** + * @public + *

An object + * representing the payment responsibilities accepted by the collaboration + * member.

+ */ +export interface MembershipPaymentConfiguration { + /** + * @public + *

The payment + * responsibilities accepted by the collaboration member for query compute + * costs.

+ */ + queryCompute: MembershipQueryComputePaymentConfig | undefined; +} + /** * @public * @enum @@ -3499,7 +3616,7 @@ export interface CreateMembershipInput { /** * @public *

An indicator as to whether query logging has been enabled or disabled for the - * collaboration.

+ * membership.

*/ queryLogStatus: MembershipQueryLogStatus | undefined; @@ -3519,6 +3636,16 @@ export interface CreateMembershipInput { * results.

*/ defaultResultConfiguration?: MembershipProtectedQueryResultConfiguration; + + /** + * @public + *

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 member ability to run queries but + * is configured as a payer by the collaboration creator.

+ */ + paymentConfiguration?: MembershipPaymentConfiguration; } /** @@ -3598,8 +3725,8 @@ export interface Membership { /** * @public - *

The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and - * `COLLABORATION_DELETED`.

+ *

The status of the + * membership.

*/ status: MembershipStatus | undefined; @@ -3612,17 +3739,23 @@ export interface Membership { /** * @public *

An indicator as to whether query logging has been enabled or disabled for the - * collaboration.

+ * membership.

*/ queryLogStatus: MembershipQueryLogStatus | undefined; /** * @public - *

The default - * protected query result configuration as specified by the member who can receive - * results.

+ *

The default protected query result configuration as specified by the member who can + * receive results.

*/ defaultResultConfiguration?: MembershipProtectedQueryResultConfiguration; + + /** + * @public + *

The payment + * responsibilities accepted by the collaboration member.

+ */ + paymentConfiguration: MembershipPaymentConfiguration | undefined; } /** @@ -3711,14 +3844,12 @@ export interface ProtectedQueryError { /** * @public - *

Details about the - * member who received the query result.

+ *

Details about the member who received the query result.

*/ export interface ProtectedQuerySingleMemberOutput { /** * @public - *

The Amazon Web Services account - * ID of the member in the collaboration who can receive results for the + *

The Amazon Web Services account ID of the member in the collaboration who can receive results for the * query.

*/ accountId: string | undefined; @@ -3761,8 +3892,7 @@ export namespace ProtectedQueryOutput { /** * @public - *

The list of member - * Amazon Web Services account(s) that received the results of the query.

+ *

The list of member Amazon Web Services account(s) that received the results of the query.

*/ export interface MemberListMember { s3?: never; @@ -4075,8 +4205,8 @@ export interface MembershipSummary { /** * @public - *

The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and - * `COLLABORATION_DELETED`.

+ *

The status of the + * membership.

*/ status: MembershipStatus | undefined; @@ -4085,6 +4215,13 @@ export interface MembershipSummary { *

The abilities granted to the collaboration member.

*/ memberAbilities: MemberAbility[] | undefined; + + /** + * @public + *

The payment + * responsibilities accepted by the collaboration member.

+ */ + paymentConfiguration: MembershipPaymentConfiguration | undefined; } /** @@ -4259,15 +4396,14 @@ export interface UpdateMembershipInput { /** * @public *

An indicator as to whether query logging has been enabled or disabled for the - * collaboration.

+ * membership.

*/ queryLogStatus?: MembershipQueryLogStatus; /** * @public - *

The default - * protected query result configuration as specified by the member who can receive - * results.

+ *

The default protected query result configuration as specified by the member who can + * receive results.

*/ defaultResultConfiguration?: MembershipProtectedQueryResultConfiguration; } diff --git a/clients/client-cleanrooms/src/protocols/Aws_restJson1.ts b/clients/client-cleanrooms/src/protocols/Aws_restJson1.ts index 905e49760af8..03c2ccdcfc74 100644 --- a/clients/client-cleanrooms/src/protocols/Aws_restJson1.ts +++ b/clients/client-cleanrooms/src/protocols/Aws_restJson1.ts @@ -186,17 +186,21 @@ import { JoinOperator, MemberAbility, Membership, + MembershipPaymentConfiguration, MembershipProtectedQueryOutputConfiguration, MembershipProtectedQueryResultConfiguration, + MembershipQueryComputePaymentConfig, MembershipSummary, MemberSpecification, MemberSummary, + PaymentConfiguration, ProtectedQuery, ProtectedQueryOutputConfiguration, ProtectedQueryResultConfiguration, ProtectedQueryS3OutputConfiguration, ProtectedQuerySQLParameters, ProtectedQuerySummary, + QueryComputePaymentConfig, ResourceNotFoundException, ScalarFunctions, Schema, @@ -346,6 +350,7 @@ export const se_CreateCollaborationCommand = async ( take(input, { creatorDisplayName: [], creatorMemberAbilities: (_) => _json(_), + creatorPaymentConfiguration: (_) => _json(_), dataEncryptionMetadata: (_) => _json(_), description: [], members: (_) => _json(_), @@ -499,6 +504,7 @@ export const se_CreateMembershipCommand = async ( take(input, { collaborationIdentifier: [], defaultResultConfiguration: (_) => _json(_), + paymentConfiguration: (_) => _json(_), queryLogStatus: [], tags: (_) => _json(_), }) @@ -4693,14 +4699,20 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont // se_MemberList omitted. +// se_MembershipPaymentConfiguration omitted. + // se_MembershipProtectedQueryOutputConfiguration omitted. // se_MembershipProtectedQueryResultConfiguration omitted. +// se_MembershipQueryComputePaymentConfig omitted. + // se_MemberSpecification omitted. // se_ParameterMap omitted. +// se_PaymentConfiguration omitted. + // se_ProtectedQueryOutputConfiguration omitted. // se_ProtectedQueryResultConfiguration omitted. @@ -4709,6 +4721,8 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont // se_ProtectedQuerySQLParameters omitted. +// se_QueryComputePaymentConfig omitted. + // se_ScalarFunctionsList omitted. // se_TableAliasList omitted. @@ -5096,16 +5110,21 @@ const de_Membership = (output: any, context: __SerdeContext): Membership => { defaultResultConfiguration: _json, id: __expectString, memberAbilities: _json, + paymentConfiguration: _json, queryLogStatus: __expectString, status: __expectString, updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), }) as any; }; +// de_MembershipPaymentConfiguration omitted. + // de_MembershipProtectedQueryOutputConfiguration omitted. // de_MembershipProtectedQueryResultConfiguration omitted. +// de_MembershipQueryComputePaymentConfig omitted. + /** * deserializeAws_restJson1MembershipSummary */ @@ -5120,6 +5139,7 @@ const de_MembershipSummary = (output: any, context: __SerdeContext): MembershipS createTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), id: __expectString, memberAbilities: _json, + paymentConfiguration: _json, status: __expectString, updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), }) as any; @@ -5148,6 +5168,7 @@ const de_MemberSummary = (output: any, context: __SerdeContext): MemberSummary = displayName: __expectString, membershipArn: __expectString, membershipId: __expectString, + paymentConfiguration: _json, status: __expectString, updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), }) as any; @@ -5167,6 +5188,8 @@ const de_MemberSummaryList = (output: any, context: __SerdeContext): MemberSumma // de_ParameterMap omitted. +// de_PaymentConfiguration omitted. + /** * deserializeAws_restJson1ProtectedQuery */ @@ -5232,6 +5255,8 @@ const de_ProtectedQuerySummaryList = (output: any, context: __SerdeContext): Pro return retVal; }; +// de_QueryComputePaymentConfig omitted. + // de_QueryTables omitted. // de_ScalarFunctionsList omitted. diff --git a/codegen/sdk-codegen/aws-models/cleanrooms.json b/codegen/sdk-codegen/aws-models/cleanrooms.json index 42f698b1393a..c674f2ebd475 100644 --- a/codegen/sdk-codegen/aws-models/cleanrooms.json +++ b/codegen/sdk-codegen/aws-models/cleanrooms.json @@ -1396,7 +1396,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#AnalysisTemplateResource": { @@ -1523,7 +1523,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 15000 + "max": 90000 } } }, @@ -2075,7 +2075,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#CollaborationName": { @@ -2600,7 +2600,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#ConfiguredTableAssociationResource": { @@ -2718,7 +2718,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#ConfiguredTableResource": { @@ -3082,6 +3082,12 @@ "traits": { "smithy.api#documentation": "

An optional label that you can assign to a resource when you create it. Each tag\n consists of a key and an optional value, both of which you define. When you use tagging,\n you can also use tag-based access control in IAM policies to control access\n to this resource.

" } + }, + "creatorPaymentConfiguration": { + "target": "com.amazonaws.cleanrooms#PaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The collaboration\n creator's payment responsibilities set by the collaboration creator.

\n

If the collaboration creator hasn't specified anyone as the member paying for query\n compute costs, then the member who can query is the default payer.

" + } } } }, @@ -3430,7 +3436,7 @@ "queryLogStatus": { "target": "com.amazonaws.cleanrooms#MembershipQueryLogStatus", "traits": { - "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n collaboration.

", + "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n membership.

", "smithy.api#required": {} } }, @@ -3445,6 +3451,12 @@ "traits": { "smithy.api#documentation": "

The default\n protected query result configuration as specified by the member who can receive\n results.

" } + }, + "paymentConfiguration": { + "target": "com.amazonaws.cleanrooms#MembershipPaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The payment\n responsibilities accepted by the collaboration member.

\n

Not required if the collaboration member has the member ability to run queries.

\n

Required if the collaboration member doesn't have the member ability to run queries but\n is configured as a payer by the collaboration creator.

" + } } } }, @@ -3466,28 +3478,28 @@ "allowCleartext": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether encrypted tables can contain cleartext data (true) or are to\n cryptographically process every column (false).

", + "smithy.api#documentation": "

Indicates whether encrypted tables can contain cleartext data\n (TRUE)\n or are to cryptographically process every column\n (FALSE).

", "smithy.api#required": {} } }, "allowDuplicates": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether Fingerprint columns can contain duplicate entries (true) or are to\n contain only non-repeated values (false).

", + "smithy.api#documentation": "

Indicates whether Fingerprint columns can contain duplicate entries\n (TRUE)\n or are to contain only non-repeated values\n (FALSE).

", "smithy.api#required": {} } }, "allowJoinsOnColumnsWithDifferentNames": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether Fingerprint columns can be joined on any other Fingerprint column with\n a different name (true) or can only be joined on Fingerprint columns of the same name\n (false).

", + "smithy.api#documentation": "

Indicates whether Fingerprint columns can be joined on any other Fingerprint column with\n a different name\n (TRUE)\n or can only be joined on Fingerprint columns of the same name\n (FALSE).

", "smithy.api#required": {} } }, "preserveNulls": { "target": "smithy.api#Boolean", "traits": { - "smithy.api#documentation": "

Indicates whether NULL values are to be copied as NULL to encrypted tables (true) or\n cryptographically processed (false).

", + "smithy.api#documentation": "

Indicates whether NULL values are to be copied as NULL to encrypted tables\n (TRUE)\n or cryptographically processed\n (FALSE).

", "smithy.api#required": {} } } @@ -5617,6 +5629,12 @@ "smithy.api#documentation": "

The member's display name.

", "smithy.api#required": {} } + }, + "paymentConfiguration": { + "target": "com.amazonaws.cleanrooms#PaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The collaboration\n member's payment responsibilities set by the collaboration creator.\n

\n

If the collaboration creator hasn't specified anyone as the member paying for query\n compute costs, then the member who can query is the default payer.

" + } } }, "traits": { @@ -5660,7 +5678,7 @@ "status": { "target": "com.amazonaws.cleanrooms#MemberStatus", "traits": { - "smithy.api#documentation": "

The status of the member. Valid values are `INVITED`, `ACTIVE`, `LEFT`, and\n `REMOVED`.

", + "smithy.api#documentation": "

The status of the member.\n

", "smithy.api#required": {} } }, @@ -5703,6 +5721,13 @@ "traits": { "smithy.api#documentation": "

The unique ARN for the member's associated membership, if present.

" } + }, + "paymentConfiguration": { + "target": "com.amazonaws.cleanrooms#PaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The collaboration\n member's payment responsibilities set by the collaboration creator.\n

", + "smithy.api#required": {} + } } }, "traits": { @@ -5785,7 +5810,7 @@ "status": { "target": "com.amazonaws.cleanrooms#MembershipStatus", "traits": { - "smithy.api#documentation": "

The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and\n `COLLABORATION_DELETED`.

", + "smithy.api#documentation": "

The status of the\n membership.

", "smithy.api#required": {} } }, @@ -5799,14 +5824,21 @@ "queryLogStatus": { "target": "com.amazonaws.cleanrooms#MembershipQueryLogStatus", "traits": { - "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n collaboration.

", + "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n membership.

", "smithy.api#required": {} } }, "defaultResultConfiguration": { "target": "com.amazonaws.cleanrooms#MembershipProtectedQueryResultConfiguration", "traits": { - "smithy.api#documentation": "

The default\n protected query result configuration as specified by the member who can receive\n results.

" + "smithy.api#documentation": "

The default protected query result configuration as specified by the member who can\n receive results.

" + } + }, + "paymentConfiguration": { + "target": "com.amazonaws.cleanrooms#MembershipPaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The payment\n responsibilities accepted by the collaboration member.

", + "smithy.api#required": {} } } }, @@ -5830,7 +5862,22 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + } + }, + "com.amazonaws.cleanrooms#MembershipPaymentConfiguration": { + "type": "structure", + "members": { + "queryCompute": { + "target": "com.amazonaws.cleanrooms#MembershipQueryComputePaymentConfig", + "traits": { + "smithy.api#documentation": "

The payment\n responsibilities accepted by the collaboration member for query compute\n costs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object\n representing the payment responsibilities accepted by the collaboration\n member.

" } }, "com.amazonaws.cleanrooms#MembershipProtectedQueryOutputConfiguration": { @@ -5841,7 +5888,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains\n configurations for protected query results.

" + "smithy.api#documentation": "

Contains configurations for protected query results.

" } }, "com.amazonaws.cleanrooms#MembershipProtectedQueryResultConfiguration": { @@ -5850,19 +5897,34 @@ "outputConfiguration": { "target": "com.amazonaws.cleanrooms#MembershipProtectedQueryOutputConfiguration", "traits": { - "smithy.api#documentation": "

Configuration for\n protected query results.

", + "smithy.api#documentation": "

Configuration for protected query results.

", "smithy.api#required": {} } }, "roleArn": { "target": "com.amazonaws.cleanrooms#RoleArn", "traits": { - "smithy.api#documentation": "

The unique ARN for\n an IAM role that is used by Clean Rooms to write protected query results to the\n result location, given by the member who can receive results.

" + "smithy.api#documentation": "

The unique ARN for an IAM role that is used by Clean Rooms to write protected\n query results to the result location, given by the member who can receive results.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Contains configurations for protected query results.

" + } + }, + "com.amazonaws.cleanrooms#MembershipQueryComputePaymentConfig": { + "type": "structure", + "members": { + "isResponsible": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether\n the collaboration member has accepted to pay for query compute costs (TRUE) or\n has not accepted to pay for query compute costs\n (FALSE).

\n

If the collaboration creator has not specified anyone to pay for query compute costs,\n then the member who can query is the default payer.

\n

An error message is returned for the following reasons:

\n
    \n
  • \n

    If you set the value to FALSE but you are responsible to pay for\n query compute costs.

    \n
  • \n
  • \n

    If you set the value to TRUE but you are not responsible to pay for\n query compute costs.

    \n
  • \n
", + "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Contains\n configurations for protected query results.

" + "smithy.api#documentation": "

An object\n representing the payment responsibilities accepted by the collaboration member for query\n compute costs.

" } }, "com.amazonaws.cleanrooms#MembershipQueryLogStatus": { @@ -6016,7 +6078,7 @@ "status": { "target": "com.amazonaws.cleanrooms#MembershipStatus", "traits": { - "smithy.api#documentation": "

The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and\n `COLLABORATION_DELETED`.

", + "smithy.api#documentation": "

The status of the\n membership.

", "smithy.api#required": {} } }, @@ -6026,6 +6088,13 @@ "smithy.api#documentation": "

The abilities granted to the collaboration member.

", "smithy.api#required": {} } + }, + "paymentConfiguration": { + "target": "com.amazonaws.cleanrooms#MembershipPaymentConfiguration", + "traits": { + "smithy.api#documentation": "

The payment\n responsibilities accepted by the collaboration member.

", + "smithy.api#required": {} + } } }, "traits": { @@ -6169,6 +6238,21 @@ } } }, + "com.amazonaws.cleanrooms#PaymentConfiguration": { + "type": "structure", + "members": { + "queryCompute": { + "target": "com.amazonaws.cleanrooms#QueryComputePaymentConfig", + "traits": { + "smithy.api#documentation": "

The collaboration\n member's payment responsibilities set by the collaboration creator for query compute\n costs.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object\n representing the collaboration member's payment responsibilities set by the collaboration\n creator.

" + } + }, "com.amazonaws.cleanrooms#ProtectedQuery": { "type": "structure", "members": { @@ -6269,10 +6353,10 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#ProtectedQueryMemberOutputList": { @@ -6293,7 +6377,7 @@ "memberList": { "target": "com.amazonaws.cleanrooms#ProtectedQueryMemberOutputList", "traits": { - "smithy.api#documentation": "

The list of member\n Amazon Web Services account(s) that received the results of the query.

" + "smithy.api#documentation": "

The list of member Amazon Web Services account(s) that received the results of the query.

" } } }, @@ -6401,7 +6485,7 @@ "traits": { "smithy.api#documentation": "

The query string to be submitted.

", "smithy.api#length": { - "max": 15000 + "max": 90000 } } }, @@ -6429,13 +6513,13 @@ "accountId": { "target": "com.amazonaws.cleanrooms#AccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account\n ID of the member in the collaboration who can receive results for the\n query.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the member in the collaboration who can receive results for the\n query.

", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

Details about the\n member who received the query result.

" + "smithy.api#documentation": "

Details about the member who received the query result.

" } }, "com.amazonaws.cleanrooms#ProtectedQueryStatistics": { @@ -6548,6 +6632,21 @@ ] } }, + "com.amazonaws.cleanrooms#QueryComputePaymentConfig": { + "type": "structure", + "members": { + "isResponsible": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "

Indicates whether\n the collaboration creator has configured the collaboration member to pay for query compute\n costs (TRUE) or has not configured the collaboration member to pay for query\n compute costs (FALSE).

\n

Exactly one member can be configured to pay for query compute costs. An error is\n returned if the collaboration creator sets a TRUE value for more than one\n member in the collaboration.

\n

If the collaboration creator hasn't specified anyone as the member paying for query\n compute costs, then the member who can query is the default payer. An error is returned if\n the collaboration creator sets a FALSE value for the member who can\n query.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

An object\n representing the collaboration member's payment responsibilities set by the collaboration\n creator for query compute costs.

" + } + }, "com.amazonaws.cleanrooms#QueryTables": { "type": "list", "member": { @@ -6647,7 +6746,7 @@ "min": 32, "max": 512 }, - "smithy.api#pattern": "^arn:aws:iam::[\\w]+:role/[\\w+=,./@-]+$" + "smithy.api#pattern": "^arn:aws:iam::[\\w]+:role/[\\w+=./@-]+$" } }, "com.amazonaws.cleanrooms#ScalarFunctions": { @@ -6895,14 +6994,14 @@ } }, "com.amazonaws.cleanrooms#SchemaType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "name": "TABLE", - "value": "TABLE" + "type": "enum", + "members": { + "TABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TABLE" } - ] + } } }, "com.amazonaws.cleanrooms#ServiceQuotaExceededException": { @@ -7190,7 +7289,7 @@ "min": 36, "max": 36 }, - "smithy.api#pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.cleanrooms#UntagResource": { @@ -7690,13 +7789,13 @@ "queryLogStatus": { "target": "com.amazonaws.cleanrooms#MembershipQueryLogStatus", "traits": { - "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n collaboration.

" + "smithy.api#documentation": "

An indicator as to whether query logging has been enabled or disabled for the\n membership.

" } }, "defaultResultConfiguration": { "target": "com.amazonaws.cleanrooms#MembershipProtectedQueryResultConfiguration", "traits": { - "smithy.api#documentation": "

The default\n protected query result configuration as specified by the member who can receive\n results.

" + "smithy.api#documentation": "

The default protected query result configuration as specified by the member who can\n receive results.

" } } }